python爬蟲亂碼
A. 我在寫一個python的網路爬蟲,寫入記事本的內容都是亂碼如何使寫入的數據以utf8或者gb2312的碼制寫入。
我從自己一個utf8的爬蟲程序裡面摘的。
程序開頭:
#!/usr/bin/envpython
#-*-coding:utf8-*-
importurllib
importurllib2
importstring
importre
importsys
type0=sys.getfilesystemencoding()#解決中文亂碼問題
後面做抓取程序的時候全部加上decode和encode。
pos1=text.find(term.decode("utf-8").encode(type0))
在輸入到txt的時候相應的分隔符也要decode和encode:
f.write(info+'!'.decode("utf-8").encode(type0))
希望能幫到你。
B. python3爬蟲獲取HTML文檔時的問題。
很正常。控制台支持的編碼有限。建議你存到文件再打開看是否正常。
另外頁面寫了是gbk編碼,存文件也試試gbk
C. 為什麼python寫的爬蟲有時候抓取的數據是亂碼
1. 使用chrome瀏覽器,打開示例頁面http://tieba..com/p/3295185529?see_lz=1
2. 在帖子標題處,右鍵選擇"審查元素",可以看到標題的源代碼
3. 進行簡單的分析,我們需要獲取的是title後面的內容,根據頁面實際內容,我們編寫相應的正則表達式:
title_re=re.compile('<h1 class="core_title_txt " title="(.*?)"')
4. 同理,我們對帖子內容進行"審查元素",得到內容的源代碼
5. 編寫相應的正則表達式如下:
content_re=re.compile('<div id="post_content_\d*" class="d_post_content j_d_post_content ">(.*?)</div>')
6. 這樣通過urllib2打開頁面後,使用上述的正則表達式進行匹配,再對標題和文本內容進行相應的處理即可
D. python編寫爬蟲爬到的中文字元總是亂碼,r.encoding也不行
這個頁面是gb2312編碼的,不是utf-8
E. 為什麼Python寫的爬蟲有時候抓取的數據是亂碼
為什麼Python寫的爬蟲有時候抓取的數據是亂碼
寫爬蟲是經常會遇到這樣的問題,這種問題很顯然是編碼問題,解決的方法其實也不難。
你可以用下面的兩個方法來解決你的編碼問題:
第一種是,通過瀏覽器打開你寫的html之後,找到瀏覽器中的文字編碼修改,將編碼改為Unicode編碼,即可修復。
xml takes all the pain out of XML. Stephan Richter lxml是Python語言里和XML以及HTML工作的功能最豐富和最容易使用的庫
F. python3,pycharm,寫爬蟲時遇到列印的結果亂碼,希望得到大神的幫助,謝謝啦
這個問題主要是編碼問題,一般需要檢查系統設置、ide設置、python代碼里的編碼,一致改成utf8一般就沒問題。
windows中文默認是gbk,ide就要相應改成gbk才能顯示完整
G. python爬蟲抓下來的網頁,中間的中文亂碼怎麼解決
對於python的中文編碼問題可以參考下面的帖子
http://python.jobbole.com/85482/
同時,對於網頁的中文亂碼,建立使用requests模塊代替urllib\urllib2
requests的content方法,對中文編碼,支持比較好,基本不會出現亂碼。
req=requests.get(url,cookies=mecookies)
print req.content
具體用法,參見下面兩個帖子,較詳細:
http://blog.csdn.net/iloveyin/article/details/21444613
http://blog.csdn.net/alpha5/article/details/24964009
H. python爬蟲,第一個數據是亂碼,但後面的數據又是正確的,大佬們解答一下呀,謝謝。(附圖)
圖片不清,亂碼可能是意外匹配進來的
I. python3爬蟲抓取網頁亂碼怎麼解決
Python寫程序原則是所有進來的字元串(讀文件,爬網頁),一進來就decode,處理完之後在要輸出的地方在encode。題主讀入(read)和輸出(print)在一行里,要在win下面想不出錯就這么寫 print response.decode('utf-8').encode('gbk')
J. python爬蟲爬到的中文亂碼怎麼辦
爬到的內容,肯定是某種編碼格式(utf-8/gb2312等)的字元串。只需要對它相應的decode一下就可以了。
比如:如果網頁內容是utf-8編碼的,就:'xxx'.decode('utf-8');
如果是gb2312編碼的,就:'xxx'.decode('gb2312')