【发布时间】:2019-05-12 20:54:03
【问题描述】:
我使用 Beautiful Soup 和 Requests 来抓取表格,并测试我已经下载了一个网页,方法是右键单击并使用“另存为”下载完整的 HTML 文件。但是当我针对实际网站测试我的网络爬虫时,输出略有偏差。所以我使用 Requests 使用以下代码将页面下载到另一个 html 文件中:
import requests
r = requests.get("URL")
with open('page_content.html', 'w') as fid:
fid.write(r.text)
fid.close()
并注意到我想要抓取的相关部分(表格)与几个未闭合的标签相同。 Save As html 页面已正确关闭标签,但 Requests 页面缺少某些标签的结尾。例如,“另存为”文档的所有标签都已关闭:
<td>
<td>stuff</td>
</td>
但下载的请求文档缺少一些结束标记:
<td>
<td>stuff
</td>
网站本身的格式正确,当我使用 Inspect 时,所有标签都已关闭。但是当我使用查看页面源时,我会看到缺少的标签。在 Chrome 中打开“请求下载”页面时,其格式正确。
这在尝试使用 BeautifulSoup 解析数据时给我带来了一些麻烦。
如何在不进入并右键单击下载我想要的每个页面的情况下获取带有正确关闭标签的 HTML 文档?
【问题讨论】:
-
您将 DOM 上的视图(HTML 的浏览器解释)与原始 HTML 混淆了。
标签: python html python-requests urllib