我目前希望使用 Beautiful Soup 从 Luxembourg Stock Exchange 的具有特定类和 ID 的 URL html 中提取特定发行人数据。
我使用的示例链接在这里:https://www.bourse.lu/security/XS1338503920/234821 我试图提取的数据是存储为文本的“发行者”下的名称;在这种情况下,它是“BNP Paribas Issuance BV”。
我尝试使用 vignette-description-content-text 类,但它似乎找不到任何数据,就像在查看汤时一样,并非所有的 html 都在拉。
我发现我当前的代码只拉取了一些 html,我不知道如何扩展它拉取的数据。
import requests
from bs4 import BeautifulSoup
URL = "https://www.bourse.lu/security/XS1338503920/234821"
page = requests.get(URL)
soup = BeautifulSoup(page.content, 'html.parser')
results = soup.find(id='ResultsContainer', class_="vignette-description-content-text")
我发现了类似的问题,并遵循了 link 1、link 2 和 link 3 中显示的指南,但使用的示例 html 似乎与我要抓取的网页大不相同。< /p>
我是否缺少提取和抓取数据的内容?
答案 0 :(得分:0)
根据您的代码,我怀疑您正在尝试获取具有 class=vignette-description-content-text
和 id=ResultsContaine
的元素。
class_
是正确的使用方式,但不适用于 id
试试这个:
import requests
from bs4 import BeautifulSoup
URL = "https://www.bourse.lu/security/XS1338503920/234821"
page = requests.get(URL)
soup = BeautifulSoup(page.content, 'html.parser')
def applyFilter(element):
if element.has_attr('id') and element.has_attr('class'):
if "vignette-description-content-text" in element['class'] and element['id'] == "ResultsContainer":
return True
results = soup.find_all(applyFilter)
for result in results:
#Each result is an element here