我很难使用下一页中包含的文本来找到标签: Link to web page
我正在尝试使用以下代码查找彭博和路透社代码。 我尝试使用cssSelector:
css_selector = 'tr:has(> td:contains("Bloomberg Code"))'
my_tag: Tag = my_soup.select_one(css_selector)
使用我尝试过的发现:
my_tag = my_soup.find(lambda t: t.Tag == 'td' and re.findall('Bloomberg Code', t.text, flags=re.I))
它们都返回大量的HTML代码,该代码确实以标签“ tr”开头,但与我期望的不匹配:
<tr>
<td style="padding-top:5px">- Bloomberg Code : </td>
<td style="padding-left:10px;padding-top:5px" align="left"> FLTR:ID</td>
</tr>
我认为问题可能是Beautifulsoup将其视为可导航的字符串,但是当我检查为my_tag找到的结果类型时,它说:class'bs4.element.Tag'
感谢您的帮助 最好
答案 0 :(得分:0)
您需要一个User-Agent标头,并想要包含搜索词的td
的相邻同级td
。
from bs4 import BeautifulSoup as bs
import requests
search_strings = ['Bloomberg Code :',' Reuters Code :']
r = requests.get('https://www.marketscreener.com/FLUTTER-ENTERTAINMENT-PLC-59029817/company/', headers = {'User-Agent':'Mozilla/5.0'})
soup = bs(r.content, 'lxml')
for search_string in search_strings:
node = soup.select_one(f'td:contains("{search_string}") + td')
if node is None:
print(f'{search_string} not found')
else:
print(node.text)