gpt4 book ai didi

javascript - Python 抓取具有多个嵌套 <!DOCTYPE html> 的站点(具有多个 <!DOCTYPE html> 声明的站点)

转载 作者:行者123 更新时间:2023-12-03 10:09:25 28 4
gpt4 key购买 nike

我在抓取一些具有多个 <!DOCTYPE html> 声明的网站时遇到了困难。 。

我正在使用带有 requests 的 Python 2.7.9 和来自 bs4 的 BeautifulSoup。当我执行 requests.get(url) 时,我注意到结果捕获了外部 <!DOCTYPE html> 的文本。而不是第二个内部 <!DOCTYPE html> .

我的问题是,有没有一种方法,最好使用Python,来抓取包含超过1 <!DOCTYPE html> 的网站的所有信息。 ?

这个人也有和我一样的问题;但他或她的问题没有得到答复:https://stackoverflow.com/questions/27259682/mechanize-cutting-off-html-early-python

如有任何帮助,我们将不胜感激!谢谢。

更新 v1:

我环顾 StackOverflow 并遇到了这篇文章:Using Python requests.get to parse html code that does not load at once

测试链接为http://www.anthropologie.com/anthro/product/4120200892474.jsp?cm_vc=SEARCH_RESULTS#/ .

请注意,测试链接不是我正在使用的链接,但想法几乎相同。这两个网站都使用 JS 来加载附加信息(我应该早点声明这一点,但直到现在我才意识到,抱歉!)。

在尝试使用 Selenium 加载我正在处理的页面(我没有在测试链接上尝试)后,我仍然无法获取嵌套 html 内的信息。

我确信我的 Selenium 代码可以按预期工作。关于我应该如何进行的任何提示?

最佳答案

我解决了我自己的问题。

答案概述如下:

  1. 使用实际的浏览器(最好是 Chrome)并访问相关网站。

  2. 观察并记下 Chrome 网络部分下 XHR 选项卡中的 GET/POST 请求(右键单击网站,然后单击“检查元素”)。

  3. 从那里,我们用 Python 复制每个 GET/POST 请求。

  4. 对于每个 GET/POST 请求,我们可以正常地刮掉信息。

无需使用Selenium!

关于javascript - Python 抓取具有多个嵌套 &lt;!DOCTYPE html> 的站点(具有多个 &lt;!DOCTYPE html> 声明的站点),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30203724/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com