Python 美丽的汤不';t';获取';完整网页
我正在使用BeautifulSoup解析一组链接,但它没有提取我想要的所有链接。为了找出原因,我将html下载到“web_page.html”并运行Python 美丽的汤不';t';获取';完整网页,python,html,web-scraping,beautifulsoup,Python,Html,Web Scraping,Beautifulsoup,我正在使用BeautifulSoup解析一组链接,但它没有提取我想要的所有链接。为了找出原因,我将html下载到“web_page.html”并运行 我注意到它不会打印整个网页。它在布雷克利结束。我看了看html代码,看看“Brackley”是否发生了什么奇怪的事情,但我没有找到任何东西。另外,如果我移动另一个链接到Brackley的位置,它会打印出来,而不是Brackley。它似乎只会读取一定大小的html文件 我不确定你是如何获得该页面和链接的,以下是我所做的,并获得了所有链接,从“Cana
我注意到它不会打印整个网页。它在布雷克利结束。我看了看html代码,看看“Brackley”是否发生了什么奇怪的事情,但我没有找到任何东西。另外,如果我移动另一个链接到Brackley的位置,它会打印出来,而不是Brackley。它似乎只会读取一定大小的html文件 我不确定你是如何获得该页面和链接的,以下是我所做的,并获得了所有链接,从“Canada”开始,以“Taloyoak,HAM”结尾: 印刷品:
[
u'Canada',
u'Newfoundland and Labrador / Terre-Neuve-et-Labrador',
...
u'Gjoa Haven, HAM',
u'Taloyoak, HAM'
]
仅供参考,
div.span-8 ol LIA
是一个语法分析器。尝试使用不同的语法分析器。您没有指定一个语法分析器,因此可能使用默认的html.parser
。尝试使用lxml
或html5lib
更多信息:作为另一个响应,我也得到了这个结果。@alecxe。谢谢你的回答。我使用httplib2获取页面,但这不起作用,所以我切换到使用“另存页面为”从chrome保存文件。很高兴知道请求直接起作用。我也不想/不知道试一下。这也是我的第一个想法,但在
html5lib
、html.parser
、lxml
之间切换并没有什么区别——至少对我使用的方法来说是这样。谢谢,米基。谢谢html5lib为我工作。我通过“另存页面为”从chrome获得html。我仍然不明白为什么其他解析器不工作。。。
from bs4 import BeautifulSoup
import requests
url = 'http://www12.statcan.gc.ca/census-recensement/2006/dp-pd/tbt/Geo-index-eng.cfm?TABID=5&LANG=E&APATH=3&DETAIL=0&DIM=0&FL=A&FREE=0&GC=0&GID=0&GK=0&GRP=1&PID=99015&PRID=0&PTYPE=88971,97154&S=0&SHOWALL=0&SUB=0&Temporal=2006&THEME=70&VID=0&VNAMEE=&VNAMEF=&D1=0&D2=0&D3=0&D4=0&D5=0&D6=0'
response = requests.get(url)
soup = BeautifulSoup(response.content)
print [a.text for a in soup.select('div.span-8 ol li a')]
[
u'Canada',
u'Newfoundland and Labrador / Terre-Neuve-et-Labrador',
...
u'Gjoa Haven, HAM',
u'Taloyoak, HAM'
]