我目前正在尝试使用Python 3.6中的请求和BeautifulSoup模块进行练习,并且遇到了一个问题,在其他问题和解答中我似乎找不到任何信息。
似乎在页面上的某个时刻,Beuatiful Soup停止识别标签和ID。我试图从这样的页面中提取播放数据:
http://www.pro-football-
reference.com/boxscores/201609080den.htm
import requests, bs4
source_url = 'http://www.pro-football-reference.com/boxscores/201609080den.htm'
res = requests.get(source_url)
if '404' in res.url:
raise Exception('No data found for this link: '+source_url)
soup = bs4.BeautifulSoup(res.text,'html.parser')
#this works
all_pbp = soup.findAll('div', {'id' : 'all_pbp'})
print(len(all_pbp))
#this doesn't
table = soup.findAll('table', {'id' : 'pbp'})
print(len(table))
使用Chrome中的检查器,我可以看到该表确实存在。我也曾尝试在HTML的后半部分的’div’和’tr’上使用它,但它似乎不起作用。我已经尝试过标准的’html.parser’以及lxml和html5lib,但是似乎没有任何效果。
我在这里做错什么了吗,或者HTML或其格式中有什么阻止了BeautifulSoup正确地找到以后的标签?我遇到了与该公司(hockey-
reference.com,Basketball-reference.com)相似的页面的问题,但是能够在其他站点上正确使用这些工具。
如果HTML包含某些内容,是否有更好的工具/库可帮助您从中提取此信息?
谢谢您的帮助,BF
BS4在执行URL的GET请求后将无法执行网页的JavaScript。我认为关注的表是从客户端javascript异步加载的。
结果,客户端javascript将需要首先运行才能抓取HTML。这篇文章介绍了如何做!
问题内容: 我正在尝试解析一个网站,并通过BeautifulSoup.findAll获取一些信息,但它并没有全部找到。.我正在使用python3 代码是这个 它只打印其中一半… 问题答案: 不同的HTML解析器对损坏的HTML的处理方式不同。该页面提供了损坏的HTML,解析器对此的处理不佳: 标准库在此特定页面上的麻烦较少: 使用将其转换为您的特定代码示例,您将这样指定解析器:
我使用BeautifulSoup从HTML文件中提取信息。我希望能够捕获信息的位置,即BS标记对象的标记在HTML文件中的偏移量。 有办法做到这一点吗? 我目前使用的是lxml解析器,因为它是默认的。
考虑一下这段代码: 它只打印“divTag” 更新: 我基本上想在'a'标签中提取“字符串”值。
我试图使用美丽的汤抓取newegg的产品名称、描述、价格和图像。我有以下bs4.element.标签类型,我想从标签中提取“src”链接。以下是我的标签: 我怎样才能提取 从这个标签?我试过了 但我收到了Keyerror。
问题内容: 我想使用漂亮的汤删除html文件中的所有注释。由于BS4将每个注释作为一种特殊类型的可导航字符串,所以我认为这段代码可以工作: 所以那行不通…。如何使用BS4查找所有评论? 问题答案: 您可以将函数传递给find_all()来帮助它检查字符串是否为Comment。 例如我有下面的HTML: 码: 输出将是: 顺便说一句,我认为不起作用的原因是(来自BeautifulSoup文档): 输
我希望从< code>div内的标题和< code >内的文本中提取文本字符串 我可以用<code>汤得到标题。h1</code>,但我想获得特定于div<code>中的<code>h1</code> 超文本标记语言:
下面是一个网络刮刀,它用漂亮的汤从这个网站上刮出一个团队名单。每一列数据都被放入一个数组,然后循环到一个CSV文件中。我想刮掉团队名称(代码中的“团队”),但我正在努力将元标记(见下文的html代码)合并到我的CSV写入器循环中。 我认为问题在于“Team”数组中的值长度与其他列中的值长度不匹配。例如,我当前的代码打印的数组如下所示: 但我需要团队数组(最后一个数组)匹配前两个数组的长度,如下所示
我看了stackoverflow上关于漂亮汤的大部分问题,只从网站上抓取了一半的数据,但是到目前为止没有一个有效。我尝试过将该功能更改为lxml或html5lib等。我也尝试使用硒,现在我尝试用硒向下滚动网站,加载网站上的所有内容,并使用漂亮的汤来抓取数据,但是当需要超过100个项目时,它只保留抓取16个项目。我在下面附上了我的代码。 我试图刮掉的网站链接:https://www.ranker.c