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()
# 設置代理
# 一定要注意,=兩邊不能有空格,不能是這樣--proxy-server = http://202.20.16.82:10152
browser
=
webdriver.Chrome(chrome_options
=
chromeOptions)
# 查看本機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
