鍍金池/ 問(wèn)答/數(shù)據(jù)分析&挖掘  Python/ 企查查無(wú)頭瀏覽器無(wú)法搜索

企查查無(wú)頭瀏覽器無(wú)法搜索

企查查無(wú)法用selenium 無(wú)頭瀏覽器搜索

https://www.qichacha.com/

回答
編輯回答
心癌

可能有反爬蟲(chóng)手段,selenium還是有些特征的,比如全局對(duì)象中會(huì)有一些特殊屬性。

2018年4月22日 23:39
編輯回答
墻頭草

看你為了爬企查查已經(jīng)問(wèn)了不少問(wèn)題了, 這里我提醒一下:
如果使用 ChromeDriver 的無(wú)頭模式, 那么訪問(wèn)網(wǎng)站的時(shí)候不能有通過(guò)document.write()插入的 js腳本被執(zhí)行. 參考stackoverflow 上的一個(gè)問(wèn)題:
例子:

>>> from selenium import webdriver
>>> option = webdriver.ChromeOptions()
>>> option.add_argument('--headless')
>>> driver = webdriver.Chrome(chrome_options=option)
[0608/163830.206:ERROR:gpu_process_transport_factory.cc(1007)] Lost UI shared context.

DevTools listening on ws://127.0.0.1:60357/devtools/browser/36a1f861-d1ab-4cef-a5a9-3072bbada0fc
>>> driver.get('https://www.baidu.com')
[0608/163849.677:INFO:CONSOLE(715)] "A parser-blocking, cross site (i.e. different eTLD+1) script, https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/global/js/all_async_search_8d20902.js, is invoked via document.write. The network request for this script MAY be blocked by the browser in this or a future page load due to poor network connectivity. If blocked in this page load, it will be confirmed in a subsequent console message. See https://www.chromestatus.com/feature/5718547946799104 for more details.", source: https://www.baidu.com/ (715)

這里 https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/static/protocol/https/global/js/all_async_search_8d20902.js 是通過(guò) document.write()寫(xiě)入 html 文本中然后再加載的, 不會(huì)被執(zhí)行, 因此報(bào)錯(cuò).

但是 Firefox 沒(méi)有這個(gè)問(wèn)題, 所以我推薦你使用 Firefox 的無(wú)頭模式, 或者 phantomjs 這個(gè)無(wú)頭瀏覽器.
Firefox例子:

from selenium import webdriver
option = webdriver.FirefoxOptions()
option.add_argument('--headless')
driver = webdriver.Firefox(firefox_options=option)
driver.get('https://www.qichacha.com')
# 業(yè)務(wù)代碼...

當(dāng)然, 使用 Firefox 之前需要安裝 Firefox.

2018年6月9日 15:49