Python 从span中提取文本

Python 从span中提取文本,python,html,beautifulsoup,text-extraction,Python,Html,Beautifulsoup,Text Extraction,我对没有id或类的span标记有一个问题。 更大的方法是从下面的链接中提取“项目1.业务”到“项目1A.风险因素”之间的文本。但是,我找不到找到这个部分的方法,因为它所在的span没有id,也没有我可以搜索的类(只有span所在的父div:div=soup.find(“div”,“id”:“dynamic xbrl form”}) 遗憾的是,此代码不起作用:#text=unicodedata.normalize('NFKD',soup.get_text()).replace('\n','') 我

我对没有id或类的span标记有一个问题。 更大的方法是从下面的链接中提取“项目1.业务”到“项目1A.风险因素”之间的文本。但是,我找不到找到这个部分的方法,因为它所在的span没有id,也没有我可以搜索的类(只有span所在的父div:
div=soup.find(“div”,“id”:“dynamic xbrl form”})

遗憾的是,此代码不起作用:
#text=unicodedata.normalize('NFKD',soup.get_text()).replace('\n','')

我的做法如下:

url = 'https://www.sec.gov/ix?doc=/Archives/edgar/data/934549/000093454919000017/actg2018123110-k.htm#s62CF0831C63E51C2BEF33F4163F1DE65'
raw = requests.get(url)
soup = BeautifulSoup(raw.content)

div = soup.find("span", {"id": ... })
print(div.txt)
你有什么想法或提示吗

非常感谢
Julius

此页面的内容是从
JavaScript
加载的,您不能为此使用
BeautifulSoup
。为此,请使用
selenium

在我的情况下,我正在使用span标记的id进行检查,这解决了我的问题:

import requests
from bs4 import BeautifulSoup
URL = 'https://www.facebook.com/hackerv728'
page = requests.get(URL)
soup = BeautifulSoup(page.content, 'html.parser')
titles = soup.find_all('span', id='fb-timeline-cover-name')
for title in titles:
    print(title.text.strip())

正如@Gagan所说,网站内容是从Javascript加载的。你需要使用
Selenium

使用Selenium比其他Python函数更强大。我使用了ChromeDriver,所以如果您还没有安装它,您可以在中安装它

您还可以获取所有源代码

print (browser.page_source)

感谢您的回复。您知道我需要哪个函数吗?带有“find”的函数?谢谢,但不起作用。另外div.text不是有效的方法。嘿,我以前也尝试过selenium方法,但是使用
find_elements\u by_xpath
,但是我无法通过这个特定链接(sec.gov)找到任何带有“class:col-sm-12”或“id=dynamic xbrl form”。虽然带有这些属性的div在html代码中很明显。具体来说,我使用了以下代码:
驱动程序。通过xpath(“//div[@id='dynamic-xbrl-form']”)查找元素
,但我只得到了“无法定位元素”错误。通常这会得到正确的结果。遗憾的是,我实际上寻找的跨度没有任何错误”id“也不是”类“!
print (browser.page_source)