Python不会提取所有数据
我目前正在寻找从URL html中提取特定发行人数据,并使用Beautiful Soup从卢森堡证券交易所获取特定类和ID 我使用的示例链接如下: 我试图提取的数据是存储为文本的“Issuer”下的名称;在这种情况下,它是“法国巴黎银行发行有限公司” 我尝试过使用类vignette描述内容文本,但它似乎找不到任何数据,因为在查看soup时,并不是所有的html都被提取出来 我发现我当前的代码只提取了一些html,我不知道如何扩展它所提取的数据Python不会提取所有数据,python,html,web-scraping,beautifulsoup,Python,Html,Web Scraping,Beautifulsoup,我目前正在寻找从URL html中提取特定发行人数据,并使用Beautiful Soup从卢森堡证券交易所获取特定类和ID 我使用的示例链接如下: 我试图提取的数据是存储为文本的“Issuer”下的名称;在这种情况下,它是“法国巴黎银行发行有限公司” 我尝试过使用类vignette描述内容文本,但它似乎找不到任何数据,因为在查看soup时,并不是所有的html都被提取出来 我发现我当前的代码只提取了一些html,我不知道如何扩展它所提取的数据 import requests from bs4 i
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")
我发现了类似的问题,并遵循了和中所示的指南,但所使用的示例html似乎与我要浏览的网页非常不同
我是否缺少一些东西来提取和刮取数据?根据您的代码,我怀疑您正在尝试获取具有
class=vignette description content text
和id=resultcontaine
的元素。
类
是正确的使用方式,但与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
我认为问题可能在于您想要的数据是由网页上的javascript生成的,而不是实际的html。使用selenium而不是beautifulsoup可能会更幸运。但我对硒不太熟悉;希望其他人能提供更多帮助。祝你好运。嗨@Shreyesh,谢谢你在这方面花时间。我已经尝试使用上面定义的过滤器函数运行代码,但是,我仍然得到一个空的结果数组。问题仍然不是所有html都不是由Beautifulsoup函数提取的吗?它是一个javascript页面,因此最终呈现的页面不是请求模块返回的数据的一部分。您可能需要考虑使用selenium获取最终呈现的HTML,在selenium中使用浏览器及其驱动程序(例如:)