Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 美丽的汤不';t';获取';完整网页_Python_Html_Web Scraping_Beautifulsoup - Fatal编程技术网

Python 美丽的汤不';t';获取';完整网页

Python 美丽的汤不';t';获取';完整网页,python,html,web-scraping,beautifulsoup,Python,Html,Web Scraping,Beautifulsoup,我正在使用BeautifulSoup解析一组链接,但它没有提取我想要的所有链接。为了找出原因,我将html下载到“web_page.html”并运行 我注意到它不会打印整个网页。它在布雷克利结束。我看了看html代码,看看“Brackley”是否发生了什么奇怪的事情,但我没有找到任何东西。另外,如果我移动另一个链接到Brackley的位置,它会打印出来,而不是Brackley。它似乎只会读取一定大小的html文件 我不确定你是如何获得该页面和链接的,以下是我所做的,并获得了所有链接,从“Cana

我正在使用BeautifulSoup解析一组链接,但它没有提取我想要的所有链接。为了找出原因,我将html下载到“web_page.html”并运行


我注意到它不会打印整个网页。它在布雷克利结束。我看了看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'
]