为了采集稳定币USDT的流通数据,需要去https://wallet.tether.to/transparency采集,用的python3 和selenium,非无头模式可以顺利加载,无头模式下死活加载不出来,无头模式截图发现页面跳出来这货,尝试使用打码平台识别之,结果识别完了提交验证后还是回到这个页面,无奈啊。
最后使用了如下参数解决了问题,顺利无头模式下加载页面
def Chrome_Headless():
#https://segmentfault.com/q/1010000020623284/,添加了一些参数,确实可以骗过https://wallet.tether.to/transparency对无头浏览器检测
#在线检测是否无头能欺骗,https://arh.antoinevastel.com/bots/areyouheadless
chrome_options = Options()
chrome_options.add_argument('--no-sandbox')#解决DevToolsActivePort文件不存在的报错
chrome_options.add_argument('window-size=1920x1080') #指定浏览器分辨率
chrome_options.add_argument('--disable-gpu') #谷歌文档提到需要加上这个属性来规避bug
chrome_options.add_argument('log-level=3')
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])
chrome_options.add_argument('--headless')
chrome_options.add_argument("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument("lang=zh_CN.UTF-8")
driver=webdriver.Chrome(options=chrome_options)
#driver.set_window_size(1920, 1080)
driver.maximize_window()
return driver
user-agent 或者lang=zh_CN.UTF-8可能是wallet.tether.to用来检测是否无头浏览器的东西吧,
参考:
https://segmentfault.com/q/1010000020623284/
https://blog.csdn.net/Revivedsun/article/details/81785000
区块链等格式化数据的平台:https://tushare.pro/register?reg=322271