摘要:實現代理認證原理本身支持的不支持用戶認證,想要認證用戶代理,本文的思想就是給瀏覽器裝插件,也就是代理插件。
selenium實現ip代理http認證
原理
selenium本身支持的ip不支持用戶認證,想要認證用戶代理ip, 本文的思想就是給瀏覽器裝插件,也就是代理插件。
其中插件的包來源于https://github.com/RobinDev/S...
注意:文件路徑自己修改
代碼如下:
import os import re import time import zipfile from selenium import webdriver # Chrome代理模板插件(https://github.com/RobinDev/Selenium-Chrome-HTTP-Private-Proxy)目錄 CHROME_PROXY_HELPER_DIR = "../cookies/Chrome-proxy-helper" # 存儲自定義Chrome代理擴展文件的目錄 CUSTOM_CHROME_PROXY_EXTENSIONS_DIR = "../cookies/chrome-proxy-extensions" def get_chrome_proxy_extension(proxy): """獲取一個Chrome代理擴展,里面配置有指定的代理(帶用戶名密碼認證) proxy - 指定的代理,格式: username:password@ip:port """ m = re.compile("([^:]+):([^@]+)@([d.]+):(d+)").search(proxy) if m: # 提取代理的各項參數 username = m.groups()[0] password = m.groups()[1] ip = m.groups()[2] port = m.groups()[3] # 創建一個定制Chrome代理擴展(zip文件) if not os.path.exists(CUSTOM_CHROME_PROXY_EXTENSIONS_DIR): os.mkdir(CUSTOM_CHROME_PROXY_EXTENSIONS_DIR) extension_file_path = os.path.join(CUSTOM_CHROME_PROXY_EXTENSIONS_DIR, "{}.zip".format(proxy.replace(":", "_"))) if not os.path.exists(extension_file_path): # 擴展文件不存在,創建 zf = zipfile.ZipFile(extension_file_path, mode="w") zf.write(os.path.join(CHROME_PROXY_HELPER_DIR, "manifest.json"), "manifest.json") # 替換模板中的代理參數 background_content = open(os.path.join(CHROME_PROXY_HELPER_DIR, "background.js")).read() background_content = background_content.replace("%proxy_host", ip) background_content = background_content.replace("%proxy_port", port) background_content = background_content.replace("%username", username) background_content = background_content.replace("%password", password) zf.writestr("background.js", background_content) zf.close() return extension_file_path else: raise Exception("Invalid proxy format. Should be username:password@ip:port") if __name__ == "__main__": # 測試 options = webdriver.ChromeOptions() # 添加一個自定義的代理插件(配置特定的代理,含用戶名密碼認證) options.add_extension(get_chrome_proxy_extension(proxy="cj422w:cj422w@117.41.187.145:888")) print(options) driver = webdriver.Chrome(chrome_options=options) # 訪問一個IP回顯網站,查看代理配置是否生效了 driver.get("http://httpbin.org/ip") print(driver.page_source) time.sleep(60) driver.quit()
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/43886.html
摘要:之前在學校曾經用過的方法做過一些爬蟲腳本來玩,從正式轉前端之后,出于興趣,我對爬蟲和反爬蟲又做了一些了解,并且做了一些爬蟲攻防的實踐。爬蟲腳本通常會很頻繁的進行網絡請求,比如要爬取豆瓣排行榜的電影,就會連續發送個網絡請求。 之前在學校曾經用過request+xpath的方法做過一些爬蟲腳本來玩,從ios正式轉前端之后,出于興趣,我對爬蟲和反爬蟲又做了一些了解,并且做了一些爬蟲攻防的實踐...
摘要:之前在學校曾經用過的方法做過一些爬蟲腳本來玩,從正式轉前端之后,出于興趣,我對爬蟲和反爬蟲又做了一些了解,并且做了一些爬蟲攻防的實踐。爬蟲腳本通常會很頻繁的進行網絡請求,比如要爬取豆瓣排行榜的電影,就會連續發送個網絡請求。 之前在學校曾經用過request+xpath的方法做過一些爬蟲腳本來玩,從ios正式轉前端之后,出于興趣,我對爬蟲和反爬蟲又做了一些了解,并且做了一些爬蟲攻防的實踐...
摘要:學習網絡爬蟲主要分個大的版塊抓取,分析,存儲另外,比較常用的爬蟲框架,這里最后也詳細介紹一下。網絡爬蟲要做的,簡單來說,就是實現瀏覽器的功能。 Python學習網絡爬蟲主要分3個大的版塊:抓取,分析,存儲 另外,比較常用的爬蟲框架Scrapy,這里最后也詳細介紹一下。 首先列舉一下本人總結的相關文章,這些覆蓋了入門網絡爬蟲需要的基本概念和技巧:寧哥的小站-網絡爬蟲,當我們在瀏覽器中輸入...
摘要:并不是所有爬蟲都遵守,一般只有大型搜索引擎爬蟲才會遵守。的端口號為的端口號為工作原理網絡爬蟲抓取過程可以理解為模擬瀏覽器操作的過程。表示服務器成功接收請求并已完成整個處理過程。 爬蟲概念 數據獲取的方式: 企業生產的用戶數據:大型互聯網公司有海量用戶,所以他們積累數據有天然優勢。有數據意識的中小型企業,也開始積累的數據。 數據管理咨詢公司 政府/機構提供的公開數據 第三方數據平臺購買...
摘要:總的來說有兩種反爬策略,要么驗證身份,把蟲子踩死在門口要么在網站植入各種反爬機制,讓爬蟲知難而退。本節內容就著這兩種反爬策略提出一些對策。內嵌反爬很靈活,沒有什么固定的代碼格式,要花時間去分析出來。 ??之前提到過,有些網站是防爬蟲的。其實事實是,凡是有一定規模的網站,大公司的網站,或是盈利性質比較強的網站,都是有高級的防爬措施的。總的來說有兩種反爬策略,要么驗證身份,把蟲子踩死在門口...
閱讀 1345·2021-11-25 09:43
閱讀 1903·2021-11-12 10:36
閱讀 6018·2021-09-22 15:05
閱讀 3488·2019-08-30 15:55
閱讀 2016·2019-08-26 14:06
閱讀 3648·2019-08-26 12:17
閱讀 506·2019-08-23 17:55
閱讀 2458·2019-08-23 16:23