我正在使用messageEmbed.addFields
和beautifulsoup
来为此webpage剪贴HTML内容。
基于页面中的选择-页面中将填充一个电台列表。单击任何一个工作站都会显示一个带有requests
值的html页面。
例如
td
我的目标是从列表中获取每个电台的数据。
我正在发出发布请求,但在响应中我没有得到任何1. State Name - West Bengal
2. District Name - Bardhman
List of stations: Chitranjan, Damodar Rl Bridge,....
标签值。 (可以动态加载)
代码:
td
任何帮助将不胜感激。谢谢!
答案 0 :(得分:0)
是的,很可能使用javascript动态加载内容。 requests
不可知。此外,许多网站不喜欢被废弃,并采取防御措施来缓解磨损。最好的做法是四处寻找该站点提供的API,以满足您的需求。
否则,您主要有两个选择。
在最简单的情况下,该站点不使用任何复杂的反网络爬虫方法,您可以仅使用无头浏览器来解释javascript等。 selenium
是一种流行的选择工具。
如果他们确实尝试检测并阻止漫游器抓取其网站,则您需要调查它们如何做到并逃避其方法。没有一个一站式解决方案,这需要时间和耐心。最简单的回避方法是当他们只是将请求标头中的known User-Agent strings列入白名单时。甚至就像节流一样容易。然后,您在标题字段中添加的内容就足够了。
更为流行的是强大的漫游器检测功能,它可以轮询您的“浏览器”以获取其分辨率,尝试通过它播放声音或尝试执行一种已知的无头浏览器功能,例如selenium
。希尔德斯(Healdess)浏览器无法回避此问题,因此您必须进行解决。
您可以通过网络梳理您的浏览器的请求(在开发人员面板中为Firefox中的默认F12),也可以花费更多时间来学习更适合该工作的工具,例如Zap Proxy。后者可以MiTM您的请求并嗅探您自己的网络流量。当您发出合法请求(实际浏览器)VS您的脚本时,可以使用它来“区分”流量。
祝你好运!