如何解决使用 Beuatiful Soup 匹配标题中的特定文本
基本上,我想找到包含某些关键术语的所有链接。就我而言,我想要的这些链接的标题以这种形式出现:abc...(普通文本),dce...(普通文本),...我想获取所有包含“(普通文本)的链接文本)”并将它们放入列表中。我让代码正常工作,我明白如何找到所有链接。但是,我将链接转换为字符串以查找“(普通文本)”。我知道这不是一个好习惯,我不确定如何使用 Beautiful Soup 来查找这个常见元素而不转换为字符串。这里的问题是我正在搜索的标题并不完全相同。这是我到目前为止所拥有的:
from bs4 import BeautifulSoup
import requests
import webbrowser
url = 'website.com'
http = requests.get(url)
soup = BeautifulSoup(http.content,"lxml")
links = soup.find_all('a',limit=4000)
links_length = len(links)
string_links = []
targetlist = []
for a in range(links_length):
string_links.append(str(links[a]))
if '(common text)' in string_links[a]:
targetlist.append(string_links[a])
注意:我正在寻找使用 Beautiful Soup 实现此目的的最简单方法。任何帮助将不胜感激。
解决方法
如果没有您想要的实际网站和实际输出,很难说出您想要什么,但这是使用列表理解的“更干净”的解决方案。
from bs4 import BeautifulSoup
import requests
import webbrowser
url = 'website.com'
http = requests.get(url)
soup = BeautifulSoup(http.content,"lxml")
links = soup.find_all('a',limit=4000)
targetlist = [str(link) for link in links if "(common text)" in str(link)]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。