在爬蟲的獲取資料上,一直在講一些爬取的方法,想必小夥伴們也學習了不少。在學習的過程中程式設計客棧遇到了問題,大家也會一起交流解決,找出不懂和出錯的地方。今天小編想就爬蟲採集資料時遇到的問題進行乙個整理,以及在遇到不同的問題時,我們應該想的是什麼樣的解決思路,具體內容如下分享給大家。
1、需要帶著cookie資訊訪問
比如大多數的社交化軟體,基本上都是需要使用者登入之後,才能看到有價值的東西,其實很簡單,我們可以使用p提供的cookielib模組,實現每次訪問都帶著源**給的cookie資訊去訪問,這樣只要我們成功模擬了登入,爬蟲處於登入狀態,那麼我們就可以採集到登入使用者看到的一切資訊了。下面是使用cookie對httprequest()方法的修改:
ckjar = cookielib.mozillacookiejar()
cookies = urllib2.httpcookieprocessor(ckjar) #定義cookies物件
@summary: 網路請求
'''try:
ret = none
www.cppcns.comsockfile = none
request = urllib2.request(url)
request.add_header('user-agent', 'mozilla/4.0 (compatible; msie 6.0; windows nt 5.2; sv1; .net clr 1.1.4322)')
request.add_header('pragma', 'no-cache')
opener = urllib2.build_opener(cookies) #傳遞cookies物件
sockfile = opener.open(request)
ret = sockfile.read()
finally:
if sockfil程式設計客棧e:
sockfile.close()
return ret
2、編碼問題
**目前最多的兩種編碼:utf-8,或者gbk,當我們採集回****編碼和我們資料庫儲存的編碼不一致時,比如的編碼使用的是gbk,而我們需要儲存的是utf-8編碼的資料,那麼我們可以使用python中提供的encode()和decode()方法進行轉換,比如:
content = content.decode('gbk', 'ignore') #將gbk編碼轉為unicode編碼
content = content.encode('utf-8', 'ignore') #將unicode編碼轉為u程式設計客棧tf-8編碼
Python 爬蟲中遇到的反爬蟲問題
源 一般會有下面幾種限制 1 一定時間內單個ip訪問次數,乙個正常使用者訪問 除非是隨意的點著玩,否則不會在一段持續時間內過快訪問乙個 持續時間也不會太長,我們可以採用大量不規則 ip形成乙個執行緒池,隨機從 池中選擇 模擬訪問。有兩種,透明 和匿名 2 一定時間內單個賬號訪問次數,如果乙個人一天2...
python爬蟲入門 初步採集
獲取維基百科 的任何頁面並提取頁面鏈結 import urllib2 import bs4 html urllib2.urlopen bsobj bs4.beautifulsoup html.read lxml for link in bsobj.find a if href in link.att...
Python製作爬蟲採集小說
開發工具 python3.4 作業系統 win8 主要功能 去指定 網頁爬 目錄,按章節儲存到本地,並將爬過的網頁儲存到本地配置檔案。被爬 名稱 靈棺夜行 出處 本人親自碼的 print 獲取列表完成 url path url file.txt url r open url path,r url a...