我正试图抓取一个网站,该网站返回一条错误消息,说明您的js已禁用,您可能是一个机器人。我试图在web浏览器中看到相同的行为,并且是相同的响应,但是如果启用javascript,它不会影响原始响应,我的意思是原始响应不依赖于js。
所以我在想,如果我能告诉web/http服务器,我的js已经启用,我不是机器人。
这在python请求库或其他python库中是否可能实现?
是的,我已经设置了User-Agent
头,甚至所有其他头,比如host
,language
,connection
,等等
最佳答案
如果站点只是通过执行一些js来检查javascript是否可以执行,那么使用selenium来获取页面,然后使用beautifulsoup来解析selenium获得的页面。
from bs4 import BeautifulSoup
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('http://your-site/url')
html = driver.page_source
soup = BeautifulSoup(html)
...
关于python - 如何伪装在Python请求/beautifulsoup中启用的javascript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32937590/