[英]Writing crawled data to file using python
我使用urllib2抓取了Google搜索結果頁數據,並將其寫入了文件。 但是,當我在瀏覽器中打開已解析的html文件時,卻得到了一些utf-8字符。
這是我在htmlparse中的python代碼。
import os
import urllib2
import webbrowser
url = 'https://www.google.co.in/search?q=lcd+tv'
hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11
(KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11'}
req = urllib2.Request(url, headers=hdr)
response = urllib2.urlopen(req)
f = response.read()
file = open('file.html','w+')
file.write(f)
file.close()
這是已解析頁面的屏幕截圖。
我們可以在標題上看到“?”和“?”。 甚至Ads圖片都沒有加載:(。
如何刪除那些unicode?
提前致謝。
Web服務器發送了UTF-8編碼的數據,但是您已寫入使用默認文本編碼打開的文件。 在Python中,這是ASCII,導致將非ascii數據轉儲到文件中。 以“ wb”模式(二進制)打開文件,這很可能解決了您的問題。
此外,Google不會在頁面本身中提供編碼信息,而僅在Content-Type標頭中提供。 從文件加載時,瀏覽器可能無法識別它為UTF-8。 您可以嘗試將meta標簽添加到文檔中
<meta http-equiv="content-type" content="text/html; charset=utf-8">
關於廣告,請注意,相對URL會嘗試在HD而不是實際服務器上查找文件。
如果需要顯示廣告圖像,則應單獨保存。 您可以使用標准模塊HTMLParser
HTMLParser
類(使用起來非常簡單)來解析<img>
標簽,並將其保存到單獨的文件中。 當然,每個<img>
標記中的每個鏈接都應替換為本地文件路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.