Python + Selenium 被反爬后的解决方法

背景:

需要去爬一个香港的电子元件供应商网站的库存数据,但使用PHP的get_file_content出现403,使用CURL则提示你的浏览器不支持JS和Cookie,被认定为robot了。 然后使用Python3+Selenium+ChromeDriver,在windows上成功爬到数据!

问题:

但是放到Linux上面运行时,因为linux无GUI,所以需要用到webdriver的option里的headless,结果又被识别为Robot了(也是提示你的浏览器不支持JS和Cookie)。。网上找了很多方法,都无法解决。

解决:

最后,不使用ChromeDriver,改为使用FirefoxDriver (geckodriver),问题解决!成功可以使用headless在linux上爬到数据!

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

def getHtml(url):
    options = Options()
    options.headless = True
    driver = webdriver.Firefox(executable_path ="/usr/local/bin/geckodriver", options=options)
    driver.get(url)
    print(driver.page_source)


附:

Firefox和geckodriver 版本对应参考:

https://firefox-source-docs.mozilla.org/testing/geckodriver/Support.html

geckodriver 下载地址:
https://github.com/mozilla/geckodriver/releases

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值