gpt4 book ai didi

javascript - 使用 BeautifulSoup 抓取跨度

转载 作者:行者123 更新时间:2023-12-03 08:06:22 28 4
gpt4 key购买 nike

我试图使用 BeautifulSoup 来抓取“span”标签。这是我的代码..

import urllib
from bs4 import BeautifulSoup
url="someurl"
res=urllib.urlopen(url)
html=res.read()
soup=BeautifulSoup(html,"html.parser")
soup.findAll("span")

但是当我这样做时,是针对某些特定的网页。它没有列出所有的跨度。它只是显示有限的数量。跨度。但当我这样做时

soup.prettify()

它包含所有的跨度..可能是什么原因?我错过了什么吗?我发现的一些答案是使用 headless 浏览器,例如“htmlunit”。但我不确定它们到底是什么?我可以将它们集成到我的 django 项目中吗?

soup.prettify 给出 https://drive.google.com/file/d/0BxhTzDujWhPVTzdIS2VWd1pZcHM/view?usp=sharing

soup.findAll("span") 的预期输出

list of all the spans

输出我得到

[<span class="ssc-ftpl ssc_ga_tag" data-gaa="Opened" data-gac="Footer" data-gal="Responsible Gambling" tabindex="0"> Responsible Gambling</span>, <span class="ssc-ftpl ssc_ga_tag" data-gaa="Opened" data-gac="Footer" data-gal="About Betfair" tabindex="0"> About Betfair</span>, <span class="ssc-ftpl ssc-ftls " tabindex="0">English - UK</span>, <span class="ssc-ftpl" tabindex="0">\xa9 \xae</span>]

最佳答案

终于找到解决办法了..问题是默认的“html.parser”无法处理。使用“html5lib”代替进行解析。并得到想要的结果。

soup=BeautifulSoup(html,"html5lib")
soup.findAll("span")

html5lib 解析器完全按照浏览器的方式解析页面。

关于javascript - 使用 BeautifulSoup 抓取跨度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34371924/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com