python爬蟲中采集中遇到的問題整理
在爬蟲的獲取數(shù)據(jù)上,一直在講一些爬取的方法,想必小伙伴們也學(xué)習(xí)了不少。在學(xué)習(xí)的過程中遇到了問題,大家也會一起交流解決,找出不懂和出錯的地方。今天小編想就爬蟲采集數(shù)據(jù)時遇到的問題進(jìn)行一個整理,以及在遇到不同的問題時,我們應(yīng)該想的是什么樣的解決思路,具體內(nèi)容如下分享給大家。
1、需要帶著cookie信息訪問
比如大多數(shù)的社交化軟件,基本上都是需要用戶登錄之后,才能看到有價值的東西,其實(shí)很簡單,我們可以使用Python提供的cookielib模塊,實(shí)現(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()方法進(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python面向?qū)ο蟪绦蛟O(shè)計類的多態(tài)用法詳解
這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計類的多態(tài)用法,結(jié)合實(shí)例形式詳細(xì)分析了Python面向?qū)ο蟪绦蛟O(shè)計中類的多態(tài)概念、原理、用法及相關(guān)操作注意事項,需要的朋友可以參考下2019-04-04
用Python寫腳本,實(shí)現(xiàn)完全備份和增量備份的示例
下面小編就為大家分享一篇用Python寫腳本,實(shí)現(xiàn)完全備份和增量備份的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
對python條件表達(dá)式的四種實(shí)現(xiàn)方法小結(jié)
今天小編就為大家分享一篇對python條件表達(dá)式的四種實(shí)現(xiàn)方法小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
解決Vscode中jupyter出現(xiàn)kernel dead問題
遇到VSCode中Jupyter Kernel Dead時,可通過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
opencv形態(tài)學(xué)中的孔洞填充詳細(xì)圖解
我們在進(jìn)行圖像分割后,分割結(jié)果有時會有一些小孔洞,如圖1所示,其中黑白兩色表示兩種不同的類別。一般情況下,這些孔洞屬于錯分情況,為了優(yōu)化結(jié)果,我們通常對這些孔洞進(jìn)行填充。今天我們就用python語言基于OpenCV實(shí)現(xiàn)孔洞填充2022-10-10
python實(shí)現(xiàn)mask矩陣示例(根據(jù)列表所給元素)
這篇文章主要介紹了python實(shí)現(xiàn)mask矩陣示例(根據(jù)列表所給元素),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

