selenium+python設置爬蟲代理IP的方法


1. 設置背景

在使用selenium瀏覽器渲染技術,當我們爬取某個網站的信息的時候,在一般情況下速度都不是特別的快。而且需要利用selenium瀏覽器渲染技術爬取的網站,反爬蟲的應對技術都比較厲害,對IP訪問頻率有很高程度的限制。所以,如果想提升selenium抓取數據的速度,可以從兩個方面出發:

第一方面, 抓取頻率要提高,破解出現的驗證信息,一般都是驗證碼或者是用戶登陸 。

第二方面,使用多線程 + 代理IP, 這種方式,需要電腦有足夠的內存和充足穩定的代理IP 

2. 為chrome設置代理IP

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from selenium import webdriver
chromeOptions = webdriver.ChromeOptions()
 
# 設置代理
chromeOptions.add_argument( "--proxy-server=http://202.20.16.82:10152" )
# 一定要注意,=兩邊不能有空格,不能是這樣--proxy-server = http://202.20.16.82:10152
browser = webdriver.Chrome(chrome_options = chromeOptions)
 
# 查看本機ip,查看代理是否起作用
browser.get( "http://httpbin.org/ip" )
print (browser.page_source)
 
# 退出,清除瀏覽器緩存
browser.quit()

注意事項: 

第一,選擇穩定的固定的代理IP。不要選擇動態代理IP。我們常用的爬蟲IP代理通常都是具有高度保密性質的高匿名動態IP,是通過撥號動態產生的,時效性非常的短,一般都是在3分鍾左右。對於scrapy這種並發度很高,又不需要登錄的爬蟲來說,非常合適,但是在瀏覽器渲染類爬蟲中並不適用。

第二,選擇速度較快的代理IP。因為selenium爬蟲采用的是瀏覽器渲染技術,這種瀏覽器渲染技術速度就本身就很慢。如果選擇的代理IP速度較慢,爬取的時間就會進一步增加。

第三,要有足夠大的電腦內存。因為chrome占內存較大,在並發度很高的情況下,容易造成瀏覽器崩潰,也就是程序崩潰。

第四,在程序結束時,調用 browser.quit( ) 清除瀏覽器緩存。

3. 需要用戶名密碼驗證的代理

參考文章: 

Selenium chrome配置代理Python版:https://www.jb51.net/article/151634.htm

GitHub:https://github.com/RobinDev/Selenium-Chrome-HTTP-Private-Proxy


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM