【发布时间】:2018-07-29 20:35:31
【问题描述】:
由于我最近开始学习网络抓取,我想我会尝试使用 requests 和 bs4 模块从 site 解析 HTML 表。
我知道我需要从tbody 访问td class——至少网页是这样的:
但是,当我尝试时,它似乎无法正常工作,因为它仅从 thead 捕获 td class 而不是从 tbody 捕获。因此,除了表格的标题之外,我无法捕获任何内容。
我认为它与 requests 模块有关。
url = 'https://vstup.edbo.gov.ua/statistics/requests-by-university/?
qualification=1&education-base=40'
r = requests.get(url)
print(r.text)
结果如下(粘贴表相关部分):
<table id="stats">
<caption></caption>
<thead>
<tr>
<td class="region">Регіон</td>
<td class="university">Назва закладу</td>
<td class="speciality">Спеціальність (спеціалізація)</td>
<td class="average-ball number" title="Середній конкурсний бал">СКБ</td>
<td class="requests-total number">Усього заяв</td>
<td class="requests-budget number">Заяв на бюджет</td>
</tr>
</thead>
<tbody></tbody>
</table>
所以tbody 元素在我的响应对象中丢失,而它们出现在网页的代码中。我做错了什么?
【问题讨论】:
-
当我查看该 URL 的来源时,我在表格正文中看不到任何内容。 Requests 准确地向您显示服务器正在发送的内容。
-
@holdenweb ,感谢您的回复。我提供了 url 代码截图的链接。好像不是空的
-
从对源的不那么肤浅的检查看来,该页面已交付给客户端,其中该表由客户端脚本填充。如果确实如此,我发现提取内容的最简单方法是在 Python 控制下使用 Selenium 来访问显示的页面内容。
标签: python parsing beautifulsoup python-requests html-parsing