如何伪造在 Python 请求/beautifulsoup 中启用的 javascript
Posted
技术标签:
【中文标题】如何伪造在 Python 请求/beautifulsoup 中启用的 javascript【英文标题】:How to fake javascript enabled in Python requests/beautifulsoup 【发布时间】:2016-01-01 11:01:57 【问题描述】:我正在尝试抓取一个网站,该网站返回一条错误消息,指出您的 js 已被禁用,并且您可能是机器人。我试图在网络浏览器中看到相同的行为,是的,相同的响应,但是如果启用了 javascript,它不会影响原始响应,我的意思是原始响应不依赖于 JS。
所以我在想是否可以告诉 web/http 服务器我的 JS 已启用并且我不是 BOT。 这在 Python 请求库或任何其他 Python 库中是否可行?
是的,我设置了 User-Agent
标头,甚至所有其他标头,例如 host
、language
、connection
等
【问题讨论】:
页面是否正在执行一些脚本,告诉它 JavaScript 已禁用?没有多少标题会绕过的东西。 @MikeMcMahon:delhi.quikr.com/Bikes-Scooters/w264 如果我禁用 js,它会返回一些消息。 【参考方案1】:如果站点只是通过执行一些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 请求/beautifulsoup 中启用的 javascript的主要内容,如果未能解决你的问题,请参考以下文章