python + selenium + chromedriver 如何實作無介面爬取
迷茫
迷茫 2017-05-18 10:53:13
0
2
867

在使用selenium爬取12306的過程中,發現使用phantomjs無法爬取,使用chromedriver就可以,應該是phantomjs被網站偵測出來後封禁了,使用chromedriver又會顯示介面,爬取效率低。
現在有兩點疑問,google了好久都沒找到有效的解決方法
1.如何偽裝phantomjs,盡最大可能的偽裝
2.如何設定chromedriver,使其不顯示介面,或者還有什麼其他方法可以提高爬取效率

感謝! ! !

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(2)
洪涛

透過PyVirtualDisplay可以實現你的需求,大概程式碼就是這樣:

#!/usr/bin/env python

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=0, size=(800, 600))
display.start()

# now Firefox will run in a virtual display. 
# you will not see the browser.
browser = webdriver.Chrome()
browser.get('http://www.baidu.com')
print browser.title
browser.quit()

display.stop()

不知道你修改過phantomjs的頭資訊沒有,可以透過

from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('lang=zh_CN.UTF-8')
options.add_argument('user-agent="Mozilla/5.0 (iPod; U; CPU iPhone OS 2_1 like Mac OS X; ja-jp) AppleWebKit/525.18.1 (KHTML, like Gecko) Version/3.1.1 Mobile/5F137 Safari/525.20"')
browser = webdriver.Chrome(chrome_options=options)
url = "https://baidu.com"
browser.get(url)
browser.quit()

這種方式修改phantomjs的頭部訊息,這個也可以試試

世界只因有你

可以參考鄙人的文章在headless模式下運行selenium

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!