【发布时间】:2021-07-27 02:07:28
【问题描述】:
从给定的网页选择中,我试图从表格中提取链接,条件是“文档类型”信息是特定的。例如,在这个网站上,如果文档类型是“技术援助报告”,我只想获取 Href。
当我使用谷歌检查它时,我看到了这个:
但是当我使用 BeautifulSoup 时,我可以找到 Href,但我找不到“技术援助报告”的文字。
import requests
url2 = "https://www.adb.org/projects/54128-001/main#project-documents"
response = requests.get(url2)
from bs4 import BeautifulSoup
soup = BeautifulSoup(response.text)
#print(soup.prettify())
parent = soup.find_all('tr')
parent[1].find_all('td')
我明白了:
[<td>
<a href="/projects/documents/reg-54128-001-tar">Implementing the Cities Development Initiative for Asia: Technical Assistance Report</a> </td>,
<td class="width-2-12 views-field views-field-field-date-content">
<span class="date-display-single" content="2020-09-30T00:00:00+08:00" datatype="xsd:dateTime" property="">Sep 2020</span> </td>]
有 Href 和日期,但我找不到“技术援助报告”文本。中间的“td”没有出现。
本示例仅列出网页上的一个文档,但其他示例可能有很多或没有。理想情况下,我希望能够遍历所有“tr”,并且仅在文档类型为“技术援助报告”或我正在寻找的其他内容时才获取 Href。我在这里做错了什么以及实现此目的的好方法是什么?
【问题讨论】:
-
文档类型可能是动态生成的。您可以尝试使用
Selenium检索 html。 -
@MendelG 请回复您的答案。只需更新有关请求的信息。这是一个很好的答案。展示两种获取方式并没有什么坏处。我应该这样表达我的评论。
-
@MendelG 请转发。你的回答非常好。谢谢。
标签: python beautifulsoup