python爬蟲中采集中遇到的問題整理
在爬蟲的獲取數(shù)據(jù)上,一直在講一些爬取的方法,想必小伙伴們也學(xué)習(xí)了不少。在學(xué)習(xí)的過程中遇到了問題,大家也會(huì)一起交流解決,找出不懂和出錯(cuò)的地方。今天小編想就爬蟲采集數(shù)據(jù)時(shí)遇到的問題進(jìn)行一個(gè)整理,以及在遇到不同的問題時(shí),我們應(yīng)該想的是什么樣的解決思路,具體內(nèi)容如下分享給大家。
1、需要帶著cookie信息訪問
比如大多數(shù)的社交化軟件,基本上都是需要用戶登錄之后,才能看到有價(jià)值的東西,其實(shí)很簡(jiǎn)單,我們可以使用Python提供的cookielib模塊,實(shí)現(xiàn)每次訪問都帶著源網(wǎng)站給的cookie信息去訪問,這樣只要我們成功模擬了登錄,爬蟲處于登錄狀態(tài),那么我們就可以采集到登錄用戶看到的一切信息了。下面是使用cookie對(duì)httpRequest()方法的修改:
ckjar = cookielib.MozillaCookieJar()
cookies = urllib2.HTTPCookieProcessor(ckjar) #定義cookies對(duì)象
def httpRequest(url):
'''''
@summary: 網(wǎng)絡(luò)請(qǐng)求
'''
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對(duì)象
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ù)庫存儲(chǔ)的編碼不一致時(shí),比如http://163.com的編碼使用的是gbk,而我們需要存儲(chǔ)的是utf-8編碼的數(shù)據(jù),那么我們可以使用Python中提供的encode()和decode()方法進(jìn)行轉(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python面向?qū)ο蟪绦蛟O(shè)計(jì)類的多態(tài)用法詳解
這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計(jì)類的多態(tài)用法,結(jié)合實(shí)例形式詳細(xì)分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中類的多態(tài)概念、原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-04-04
用Python寫腳本,實(shí)現(xiàn)完全備份和增量備份的示例
下面小編就為大家分享一篇用Python寫腳本,實(shí)現(xiàn)完全備份和增量備份的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04
對(duì)python條件表達(dá)式的四種實(shí)現(xiàn)方法小結(jié)
今天小編就為大家分享一篇對(duì)python條件表達(dá)式的四種實(shí)現(xiàn)方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01
解決Vscode中jupyter出現(xiàn)kernel dead問題
遇到VSCode中Jupyter Kernel Dead時(shí),可通過Anaconda Prompt安裝ipykernel解決,首先使用jupyter kernelspec list命令查看內(nèi)核,若發(fā)現(xiàn)缺少ipykernel,激活相應(yīng)虛擬環(huán)境,使用conda install ipykernel命令安裝,操作后,VSCode中Jupyter應(yīng)能正常運(yùn)行2024-09-09
python的unittest測(cè)試類代碼實(shí)例
這篇文章主要介紹了python的unittest測(cè)試類代碼實(shí)例,具有一定參考價(jià)值,需要的朋友可以了解下。2017-12-12
opencv形態(tài)學(xué)中的孔洞填充詳細(xì)圖解
我們?cè)谶M(jìn)行圖像分割后,分割結(jié)果有時(shí)會(huì)有一些小孔洞,如圖1所示,其中黑白兩色表示兩種不同的類別。一般情況下,這些孔洞屬于錯(cuò)分情況,為了優(yōu)化結(jié)果,我們通常對(duì)這些孔洞進(jìn)行填充。今天我們就用python語言基于OpenCV實(shí)現(xiàn)孔洞填充2022-10-10
python實(shí)現(xiàn)mask矩陣示例(根據(jù)列表所給元素)
這篇文章主要介紹了python實(shí)現(xiàn)mask矩陣示例(根據(jù)列表所給元素),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
python將一個(gè)英文語句以單詞為單位逆序排放的方法
今天小編就為大家分享一篇python將一個(gè)英文語句以單詞為單位逆序排放的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12

