這篇文章主要介紹了Python網(wǎng)絡(luò)爬蟲(chóng)與信息提取的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)主要從事成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)應(yīng)縣,10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):028-86922220
1.學(xué)習(xí)Python網(wǎng)絡(luò)爬蟲(chóng)與信息提取,必須會(huì)一門(mén)編程語(yǔ)言和懂得一些網(wǎng)絡(luò)相關(guān)知識(shí),最好會(huì)Python語(yǔ)言;
2.Python網(wǎng)絡(luò)爬蟲(chóng)講解是建立在:
a、Requests框架:自動(dòng)爬取HTML頁(yè)面與自動(dòng)網(wǎng)絡(luò)請(qǐng)求提交
b、robots.txt:網(wǎng)絡(luò)爬蟲(chóng)排除標(biāo)準(zhǔn)
c、BeautifulSoup框架:解析HTML頁(yè)面
d、Re框架:正則框架,提取頁(yè)面關(guān)鍵信息
e、Scrapy框架:網(wǎng)絡(luò)爬蟲(chóng)原理介紹,專業(yè)爬蟲(chóng)框架介紹
等基礎(chǔ)上的;
3. Requests的基礎(chǔ)使用
注:Requests庫(kù)是目前公認(rèn)的爬取網(wǎng)頁(yè)最好的Python第三方庫(kù),具有簡(jiǎn)單、簡(jiǎn)捷的特點(diǎn)。
官方網(wǎng)站:http://www.python-requests.org
在"C:\Windows\System32"中找到"cmd.exe",使用管理員身份運(yùn)行,在命令行中輸入:“pip install requests”運(yùn)行。
使用IDLE測(cè)試Requests庫(kù):
>>> import requests
>>> r = requests.get("http://www.baidu.com")#比如抓取百度頁(yè)面
>>> r.status_code
>>> r.encoding = 'utf-8'
>>> r.text
Requests庫(kù)的7個(gè)主要方法
方法 | 說(shuō)明 |
---|---|
requests. request() | 構(gòu)造一個(gè)請(qǐng)求,支撐一下各方法的基礎(chǔ)方法 |
requests.get() | 獲取HTML網(wǎng)頁(yè)的主要方法,對(duì)應(yīng)HTTP的GET |
requests.head() | 獲取HTML網(wǎng)頁(yè)頭的信息方法,對(duì)應(yīng)HTTP的HEAD |
requests.post() | 向HTML網(wǎng)頁(yè)提交POST請(qǐng)求方法,對(duì)應(yīng)HTTP的POST |
requests.put() | 向HTML網(wǎng)頁(yè)提交PUT請(qǐng)求的方法,對(duì)應(yīng)HTTP的RUT |
requests.patch() | 向HTML網(wǎng)頁(yè)提交局部修改請(qǐng)求,對(duì)應(yīng)于HTTP的PATCH |
requests.delete() | 向HTML頁(yè)面提交刪除請(qǐng)求,對(duì)應(yīng)HTTP的DELETE |
get()方法詳解:
r = requests.get(url)
get()方法構(gòu)造一個(gè)向服務(wù)器請(qǐng)求資源的Request對(duì)象,返回一個(gè)包含服務(wù)器資源的Response對(duì)象。
requests.get(url, params=None, **kwargs)
url:擬獲取頁(yè)面的url鏈接
params:url中的額外參數(shù),字典或字節(jié)流格式,可選
**kwargs:12個(gè)控制訪問(wèn)參數(shù)
Requests庫(kù)的2個(gè)重要對(duì)象
· Request
· Response:Response對(duì)象包含爬蟲(chóng)返回的內(nèi)容
Response對(duì)象的屬性
1. r.status_code :HTTP請(qǐng)求的返回狀態(tài),200表示連接成功,404表示失敗
2. r.text :HTTP響應(yīng)內(nèi)容的字符串形式,即,url對(duì)應(yīng)的頁(yè)面內(nèi)容
3. r.encoding : 從HTTP header中猜測(cè)的相應(yīng)內(nèi)容編碼方式
4. r.apparent_encoding : 從內(nèi)容中分析出的相應(yīng)內(nèi)容編碼方式(備選編碼方式)
5. r.content : HTTP響應(yīng)內(nèi)容的二進(jìn)制形式
6. r.encoding :如果header中不存在charset,則認(rèn)為編碼為ISO-8859-1 。
7. r.apparent_encoding :根據(jù)網(wǎng)頁(yè)內(nèi)容分析出的編碼方式可以 看作是r.encoding的備選。
Response的編碼:
8. r.encoding : 從HTTP header中猜測(cè)的響應(yīng)內(nèi)容的編碼方式;如果header中不存在charset,則認(rèn)為編碼為ISO-8859-1,r.text根據(jù)r.encoding顯示網(wǎng)頁(yè)內(nèi)容
9.r.apparent_encoding : 根據(jù)網(wǎng)頁(yè)內(nèi)容分析出的編碼方式,可以看作r.encoding的備選
10.r.raise_for_status() : 如果不是200,產(chǎn)生異常requests.HTTPError;
4.Robots協(xié)議
Robots Exclusion Standard 網(wǎng)絡(luò)爬蟲(chóng)排除標(biāo)準(zhǔn)
作用:網(wǎng)站告知網(wǎng)絡(luò)爬蟲(chóng)哪些頁(yè)面可以抓取,哪些不行。
形式:在網(wǎng)站根目錄下的robots.txt文件。
例如:
# 注釋:*代表所有,/代表根目錄
User-agent: *
Disallow: /?*
Disallow: /pop/*.html
Disallow: /pinpai/*.html?*
User-agent: EtaoSpider
Disallow: /
User-agent: HuihuiSpider
Disallow: /
User-agent: GwdangSpider
Disallow: /
User-agent: WochachaSpider
Disallow: /
注:Robots協(xié)議是建議但非約束性,網(wǎng)絡(luò)爬蟲(chóng)可以不遵守,但存在法律風(fēng)險(xiǎn)。
實(shí)例:
import requests
url = "https://item.jd.com/5145492.html"
try:
r = requests.get(url)
r.raise_for_status()
r.encoding = r.apparent_encoding
print(r.text[:1000])
except:
print("爬取失敗")
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Python網(wǎng)絡(luò)爬蟲(chóng)與信息提取的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
本文題目:Python網(wǎng)絡(luò)爬蟲(chóng)與信息提取的示例分析
分享鏈接:http://jinyejixie.com/article14/pshcge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、定制網(wǎng)站、App開(kāi)發(fā)、網(wǎng)站內(nèi)鏈、網(wǎng)站收錄、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)