漂亮的汤,有条件地提取

2024-04-19 15:18:37 发布

您现在位置:Python中文网/ 问答频道 /正文

从给定的网页选择中,我试图从表中提取链接,条件是“文档类型”信息是特定的。例如,在这个网站上,如果文档类型是“技术援助报告”,我只想获取Href

enter image description here

当我使用谷歌检查它时,我看到:

enter image description here

但是,当我使用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。我在这里做错了什么?什么是实现这一点的好方法


Tags: 文档文本import网页类型field报告requests