我正试图从雅虎金融公司( yahoo )为一只给定的etf/共同基金,在网络上刮取该行业的权重和持有量。在使用BeautifulSoup时,我很难确定要找到什么。例如:
import bs4 as bs
import urllib.request
ticker='SPY'
address=('https://finance.yahoo.com/quote/'+ticker+
'/holdings?p='+ticker)
source = urllib.request.urlopen(address).read()
soup = bs.BeautifulSoup(source,'lxml')
sector_weights = soup.find()我可以很好地阅读地址,当我检查网站时,我想要突出显示的部分是:
<div class="MB(25px) " data-reactid="18">但是,当我尝试soup.find_all('div', class_='MB(25px) ')时,它会返回一个空列表。
我也想做同样的事情,但同样的问题出现了。
如果有人知道有任何好的网站,以刮地区的信息,这将是非常感谢,晨星没有可悲的工作。
发布于 2020-01-12 01:00:48
‘Mb(25 Mb)’应该‘Mb(25 Mb)’
名称是区分大小写的和,您需要删除文字中的尾随空格。当我进行这两项更改时,您的代码就可以工作了。
我还必须删除解析器引用,让BeautifulSoup使用默认的解析器html.parser,因为当我使用解析器引用时,代码会崩溃。
https://stackoverflow.com/questions/59697040
复制相似问题