如何解决python请求库每次调用时返回不同的html内容?[关闭]

How to solve python requests library returning different html content every time I call it? [closed]

提问人:kylemoely 提问时间:11/17/2023 更新时间:11/17/2023 访问量:53

问:


想改进这个问题吗?通过编辑这篇文章添加详细信息并澄清问题。

6天前关闭。

我正在使用 python 请求抓取一个体育博彩网站,以制作一个 API 来检索体育博彩赔率。requests 库有时会从同一个 url 返回不同的 html 内容。我检测到了这个问题,因为我在终端中一遍又一遍地运行脚本,并且大约 4/5 次它可以工作,然后第 5 次我会收到错误,因为我尝试使用 BeautifulSoup 查找的 html 元素不再存在。

我知道 html 内容不同,因为在我的脚本中,我添加了几行,只需将请求返回的整个文档写入 txt 文件。成功运行一次后,我稍微更改了文件名以编写一个新文件。我一遍又一遍地运行它,直到由于前面提到的错误而导致网络抓取失败。那时我使用 filecmp 库来比较两个 txt 文件,它们并不相同。

我想这可能是一个与JavaScript相关的问题?发生该错误是因为我正在使用 BeautifulSoup 搜索具有特定类名的 html 元素,该元素有时显然存在,而有时则不存在,因此当我尝试对 html 元素执行某些操作时导致属性错误,BeautifulSoup 发现终端告诉我是类型 None。

以前有没有人遇到过这种情况?关于如何解决的任何想法?

网页抓取 python-requests html-content-extraction

评论

1赞 Tim Roberts 11/17/2023
有什么变化?一些网站使用代码生成器,为每次运行生成随机的CSS类名,部分原因是为了防止人们窃取其受版权保护的内容,就像你试图做的那样。
0赞 John Gordon 11/17/2023
“比较两个TXT文件,它们并不相同”是实际的文本内容不同,还是只是HTML标签/布局不同?
0赞 kylemoely 11/17/2023
这是一个巨大的 html 文档,我不确定有一种干净的方法来查找具体的不同之处,但它必须是某些 html 元素的一些类名,我才能得到我得到的错误。
0赞 deceze 11/17/2023
如果某个服务器有时返回不同的内容...这是它的特权。不知道我们能提供什么帮助......
0赞 kylemoely 11/17/2023
不知道这是常见的做法。谢谢

答: 暂无答案