您好,登錄后才能下訂單哦!
這篇文章主要介紹了在Python爬蟲過程中怎么使用代理IP,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
Python是一種跨平臺的、具有解釋性、編譯性、互動性和面向對象的腳本語言,其最初的設計是用于編寫自動化腳本,隨著版本的不斷更新和新功能的添加,常用于用于開發獨立的項目和大型項目。
許多網站會在一定時間內檢測到某個IP的訪問次數(通過流量統計、系統日志等),如果訪問次數多得不像正常人,就會禁止該IP的訪問。因此,我們可以設置一些代理服務器,每隔一段時間更換一個代理,即使IP被禁止,仍然可以更換IP繼續爬行。
1、設置代理服務器
通過ProxyHandler在request中設置使用代理服務器,代理的使用非常簡單,可以在專業網站上購買穩定的ip地址,也可以在網上尋找免費的ip代理。
免費開放代理基本沒有成本。我們可以在一些代理網站上收集這些免費代理。如果測試后可以使用,我們可以在爬蟲上收集它們。
2、selenium使用代理ip
selenium在使用帶有用戶名和密碼的代理ip時,不能使用無頭模式。
def create_proxy_auth_extension(proxy_host, proxy_port, proxy_username, proxy_password, scheme='http', plugin_path=None): if plugin_path is None: plugin_path = r'./proxy_auth_plugin.zip' manifest_json = """ { "version": "1.0.0", "manifest_version": 2, "name": "Chrome Proxy", "permissions": [ "proxy", "tabs", "unlimitedStorage", "storage", "<all_urls>", "webRequest", "webRequestBlocking" ], "background": { "scripts": ["background.js"] }, "minimum_chrome_version":"22.0.0" } """ background_js = string.Template( """ var config = { mode: "fixed_servers", rules: { singleProxy: { scheme: "${scheme}", host: "${host}", port: parseInt(${port}) }, bypassList: ["foobar.com"] } }; chrome.proxy.settings.set({value: config, scope: "regular"}, function() {}); function callbackFn(details) { return { authCredentials: { username: "${username}", password: "${password}" } }; } chrome.webRequest.onAuthRequired.addListener( callbackFn, {urls: ["<all_urls>"]}, ['blocking'] ); chrome.webRequest.onBeforeSendHeaders.addListener(function (details) { details.requestHeaders.push({name:"connection",value:"close"}); return { requestHeaders: details.requestHeaders }; }, {urls: ["<all_urls>"]}, ['blocking'] ); """ ).substitute( host=proxy_host, port=proxy_port, username=proxy_username, password=proxy_password, scheme=scheme, ) with zipfile.ZipFile(plugin_path, 'w') as zp: zp.writestr("manifest.json", manifest_json) zp.writestr("background.js", background_js) return plugin_path chrome_options = webdriver.ChromeOptions() proxy_auth_plugin_path = create_proxy_auth_extension( proxy_host=proxyHost, proxy_port=proxyPort, proxy_username=proxyUser, proxy_password=proxyPass) chrome_options.add_extension(proxy_auth_plugin_path) driver = webdriver.Chrome(chrome_options=chrome_options)
感謝你能夠認真閱讀完這篇文章,希望小編分享的“在Python爬蟲過程中怎么使用代理IP”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。