BeautifulSoup没有读取请求获得的整个HTML

时间:2016-03-16 00:44:30

标签: python html beautifulsoup

我正在尝试从使用BeautifulSoup呈现为HTML的运动统计表中提取数据并请求库。我在Python 3.5上运行它们。我似乎通过请求成功获取HTML,因为当我显示r.content时,显示我试图抓取的网站的完整HTML。但是,当我将它传递给BeautifulSoup时,BeautifulSoup会丢弃大部分HTML,这些HTML本身就是统计表。

如果你看看有问题的website,那么“Scoring Progression”中的HTML就会被删除。

我认为问题与括号('['和']')之间的HTML部分有关,但我无法开发出一种解决方法。我试过BeautifulSoup的html,lxml和html5lib解析器,但没有用。我也试过提供'User-Agent'标题,但也没有用。

我的代码如下。为了简洁起见,我没有包括输出。

import requests
from bs4 import BeautifulSoup

r = requests.get('http://afltables.com/afl/stats/games/2015/031420150402.html')

soup = BeautifulSoup(r.content, 'html5lib')

print(soup)

1 个答案:

答案 0 :(得分:1)

我使用了不同的解析器,它似乎工作;只是默认的html解析器。

from bs4 import BeautifulSoup
from urllib.request import urlopen as uReq

url = 'http://afltables.com/afl/stats/games/2015/031420150402.html'
client = uReq(url)  # grabs the page
soup = BeautifulSoup(client.read(), 'html.parser')  # using the default html parser
tables = soup.find_all('table')  # gets all the tables
print(tables[7])  # scoring progression table, the 8th's table

虽然如果你在没有首先使用“find_all”子句的情况下尝试了类似“soup.table”的东西,那么它似乎会丢弃其他表,因为它只返回第一个表。