我想使用BeautifulSoup從網站中提取內容(http://brooklynexposed.com/events/)。正如我可以運行下面的代碼問題的一個例子:BeautifulSoup沒有提取所有的HTML(自動刪除大部分頁面的html)
import urllib
import bs4 as BeautifulSoup
url = 'http://brooklynexposed.com/events/'
html = urllib.urlopen(url).read()
soup = BeautifulSoup.BeautifulSoup(html)
print soup.prettify().encode('utf-8')
輸出似乎切斷HTML如下:
<li class="event">
9:00pm - 11:00pm
<br/>
<a href="http://brooklynexposed.com/events/entry/5432/2013-07-16">
Comedy Sh
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</body>
</html>
它沿着切斷上市名稱爲喜劇表演與所有的HTML,直到最後的結束標籤。大多數的html被自動刪除。我在很多網站上注意到類似的事情,如果頁面太長,BeautifulSoup無法解析整個頁面,只是刪除文本。有沒有人有這個解決方案?如果BeautifulSoup無法處理這些頁面,是否有人知道其他類似於prettify()的函數庫?
你的代碼對我來說很好。如果網絡傳輸在那個時間點被中斷(所以你只能裝載到「喜劇Sh」),那麼HTML解析器將「關閉」所有仍然打開的標籤,並且你確切地看到你得到了什麼。 –
對我而言,整個內容都在那裏。從您的代碼開始創建'soup'對象:'>>> len(unicode(soup))'''107578'您使用的是哪個版本的BS?我正在使用4.2.0。 –
有趣的是,我在Python 2.7中使用4.2.1。但是,當我使用3.2它似乎工作。它不可能是超時問題,因爲如果我將原始HTML打印到一個文件中,那麼所有文本都會出現。有關2.7解決方案的任何其他想法?否則,是時候開始移植我的代碼了。 – user2540231