簡體   English   中英

使用python將抓取的數據寫入文件

[英]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.

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