簡體   English   中英

美麗的湯沒有“得到”完整的網頁

[英]Beautiful Soup doesn't 'get' full webpage

我正在使用BeautifulSoup來解析此頁面上的一堆鏈接,但它並未提取我想要的所有鏈接。 為了找出原因,我將html下載到“ web_page.html”並運行

soup = BeautifulSoup(open("web_page.html"))
print soup.get_text()

我注意到它不能打印整個網頁。 它結束於布雷克利。 我看了一下html代碼,看在'Brackley'上是否發生了一些奇怪的事情,但是我什么也沒找到。 另外,如果我將另一個鏈接移到Brackley的位置,它將打印該鏈接,而不是Brackley。 看來它只會讀取一定大小的html文件?

不知道您如何獲得頁面和鏈接,這是我所做的,並獲得了所有從“加拿大”開始並以“ Taloyoak,HAM”結尾的鏈接:

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'
]

僅供參考, div.span-8 ol li a是一個CSS Selector

嘗試使用其他解析器。 您沒有指定一個,所以您可能正在使用默認的html.parser 嘗試使用lxmlhtml5lib

有關更多信息: http : //www.crummy.com/software/BeautifulSoup/bs4/doc/#installing-a-parser

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM