python爬蟲中采集中遇到的問題整理
在爬蟲的獲取數(shù)據(jù)上,一直在講一些爬取的方法,想必小伙伴們也學(xué)習(xí)了不少。在學(xué)習(xí)的過程中遇到了問題,大家也會一起交流解決,找出不懂和出錯的地方。今天小編想就爬蟲采集數(shù)據(jù)時遇到的問題進行一個整理,以及在遇到不同的問題時,我們應(yīng)該想的是什么樣的解決思路,具體內(nèi)容如下分享給大家。
1、需要帶著cookie信息訪問
比如大多數(shù)的社交化軟件,基本上都是需要用戶登錄之后,才能看到有價值的東西,其實很簡單,我們可以使用Python提供的cookielib模塊,實現(xiàn)每次訪問都帶著源網(wǎng)站給的cookie信息去訪問,這樣只要我們成功模擬了登錄,爬蟲處于登錄狀態(tài),那么我們就可以采集到登錄用戶看到的一切信息了。下面是使用cookie對httpRequest()方法的修改:
ckjar = cookielib.MozillaCookieJar()
cookies = urllib2.HTTPCookieProcessor(ckjar) #定義cookies對象
def httpRequest(url):
'''''
@summary: 網(wǎng)絡(luò)請求
'''
try:
ret = None
SockFile = 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 SockFile:
SockFile.close()
return ret
2、編碼問題
網(wǎng)站目前最多的兩種編碼:utf-8,或者gbk,當(dāng)我們采集回來源網(wǎng)站編碼和我們數(shù)據(jù)庫存儲的編碼不一致時,比如http://163.com的編碼使用的是gbk,而我們需要存儲的是utf-8編碼的數(shù)據(jù),那么我們可以使用Python中提供的encode()和decode()方法進行轉(zhuǎn)換,比如:
content = content.decode('gbk', 'ignore') #將gbk編碼轉(zhuǎn)為unicode編碼
content = content.encode('utf-8', 'ignore') #將unicode編碼轉(zhuǎn)為utf-8編碼
到此這篇關(guān)于python爬蟲中采集中遇到的問題整理的文章就介紹到這了,更多相關(guān)python爬蟲入門之采集中遇到的問題內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python爬蟲實現(xiàn)使用beautifulSoup4爬取名言網(wǎng)功能案例
這篇文章主要介紹了Python爬蟲實現(xiàn)使用beautifulSoup4爬取名言網(wǎng)功能,結(jié)合實例形式分析了Python基于beautifulSoup4模塊爬取名言網(wǎng)并存入MySQL數(shù)據(jù)庫相關(guān)操作技巧,需要的朋友可以參考下2019-09-09
Python基于paramunittest模塊實現(xiàn)excl參數(shù)化
這篇文章主要介紹了Python基于paramunittest模塊實現(xiàn)excl參數(shù)化,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04

