python爬蟲(chóng)中采集中遇到的問(wèn)題整理
在爬蟲(chóng)的獲取數(shù)據(jù)上,一直在講一些爬取的方法,想必小伙伴們也學(xué)習(xí)了不少。在學(xué)習(xí)的過(guò)程中遇到了問(wèn)題,大家也會(huì)一起交流解決,找出不懂和出錯(cuò)的地方。今天小編想就爬蟲(chóng)采集數(shù)據(jù)時(shí)遇到的問(wèn)題進(jìn)行一個(gè)整理,以及在遇到不同的問(wèn)題時(shí),我們應(yīng)該想的是什么樣的解決思路,具體內(nèi)容如下分享給大家。
1、需要帶著cookie信息訪問(wèn)
比如大多數(shù)的社交化軟件,基本上都是需要用戶登錄之后,才能看到有價(jià)值的東西,其實(shí)很簡(jiǎn)單,我們可以使用Python提供的cookielib模塊,實(shí)現(xiàn)每次訪問(wèn)都帶著源網(wǎng)站給的cookie信息去訪問(wèn),這樣只要我們成功模擬了登錄,爬蟲(chóng)處于登錄狀態(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èn)題
網(wǎng)站目前最多的兩種編碼:utf-8,或者gbk,當(dāng)我們采集回來(lái)源網(wǎng)站編碼和我們數(shù)據(jù)庫(kù)存儲(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爬蟲(chóng)中采集中遇到的問(wèn)題整理的文章就介紹到這了,更多相關(guān)python爬蟲(chóng)入門之采集中遇到的問(wèn)題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python爬蟲(chóng)基于lxml解決數(shù)據(jù)編碼亂碼問(wèn)題
- 記一次python 爬蟲(chóng)爬取深圳租房信息的過(guò)程及遇到的問(wèn)題
- 詳解Python爬蟲(chóng)爬取博客園問(wèn)題列表所有的問(wèn)題
- Python爬蟲(chóng)實(shí)現(xiàn)selenium處理iframe作用域問(wèn)題
- Python爬蟲(chóng)設(shè)置Cookie解決網(wǎng)站攔截并爬取螞蟻短租的問(wèn)題
- 基于python分布式爬蟲(chóng)并解決假死的問(wèn)題
- 熱門問(wèn)題python爬蟲(chóng)的效率如何提高
- python爬蟲(chóng)抓取時(shí)常見(jiàn)的小問(wèn)題總結(jié)
相關(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寫(xiě)腳本,實(shí)現(xiàn)完全備份和增量備份的示例
下面小編就為大家分享一篇用Python寫(xiě)腳本,實(shí)現(xiàn)完全備份和增量備份的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
對(duì)python條件表達(dá)式的四種實(shí)現(xiàn)方法小結(jié)
今天小編就為大家分享一篇對(duì)python條件表達(dá)式的四種實(shí)現(xiàn)方法小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
解決Vscode中jupyter出現(xiàn)kernel dead問(wèn)題
遇到VSCode中Jupyter Kernel Dead時(shí),可通過(guò)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語(yǔ)言基于OpenCV實(shí)現(xiàn)孔洞填充2022-10-10
python實(shí)現(xiàn)mask矩陣示例(根據(jù)列表所給元素)
這篇文章主要介紹了python實(shí)現(xiàn)mask矩陣示例(根據(jù)列表所給元素),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
python將一個(gè)英文語(yǔ)句以單詞為單位逆序排放的方法
今天小編就為大家分享一篇python將一個(gè)英文語(yǔ)句以單詞為單位逆序排放的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12

