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

标签 javascript python html beautifulsoup python-requests

我在抓取一些具有多个 <!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/

相关文章:

python - 了解 Spark MLlib ALS.train 隐式输入格式

html - CSS - 在 BUTTON 元素内垂直居中

javascript - 为什么 Canvas 无法正确渲染?

python - 如何比较sqlalchemy中的日期?

python - 尝试在 AWS Lambda 中使用 Pillow 时无法导入名称 '_imaging'

html - 具有多列布局的两个 div 的 CSS3 宽度,并排

html - 响应式网格系统中的列

javascript - 在 jquery 中向下滚动页面时隐藏内容

javascript - Bootstrap 3 : Multi-tier navigation menu support for mobiles and up

javascript - jQuery Toggle -- 我做错了什么?