python - Beautiful Soup,有条件地提取 Href
问题描述
从给定的网页选择中,我试图从表格中提取链接,条件是“文档类型”信息是特定的。例如,在这个网站上,如果文档类型是“技术援助报告”,我只想获取 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。我在这里做错了什么,有什么好方法可以做到这一点?
解决方案
推荐阅读
- c++ - 编译 SSDL 程序时未解析的外部符号 sout
- amazon-web-services - Sagemaker 私人劳动力电子邮件列表
- postgresql - Postgres中带有表情符号的字符串长度
- arrays - C:'不兼容的指针类型传递'警告很重要?/将多维数组传递给函数
- javascript - Javascript 函数没有预期的行为
- powershell - 需要帮助遍历位置列表并删除文件夹中的内容
- sql - 将 3 个 SQL Server 查询合并在一起
- nginx - 将带有子域的 www 重定向到 NGINX 的其他 url
- laravel-8 - 表单没有显示在第一行,而是显示在 laravel 8 中的其他行
- r - 如何根据R中因子变量的条件删除行