您好,登錄后才能下訂單哦!
這篇文章主要介紹了Python網絡爬蟲與信息提取的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
1.學習Python網絡爬蟲與信息提取,必須會一門編程語言和懂得一些網絡相關知識,最好會Python語言;
2.Python網絡爬蟲講解是建立在:
a、Requests框架:自動爬取HTML頁面與自動網絡請求提交
b、robots.txt:網絡爬蟲排除標準
c、BeautifulSoup框架:解析HTML頁面
d、Re框架:正則框架,提取頁面關鍵信息
e、Scrapy框架:網絡爬蟲原理介紹,專業爬蟲框架介紹
等基礎上的;
3. Requests的基礎使用
注:Requests庫是目前公認的爬取網頁最好的Python第三方庫,具有簡單、簡捷的特點。
官方網站:http://www.python-requests.org
在"C:\Windows\System32"中找到"cmd.exe",使用管理員身份運行,在命令行中輸入:“pip install requests”運行。
使用IDLE測試Requests庫:
>>> import requests
>>> r = requests.get("http://www.baidu.com")#比如抓取百度頁面
>>> r.status_code
>>> r.encoding = 'utf-8'
>>> r.text
Requests庫的7個主要方法
方法 | 說明 |
---|---|
requests. request() | 構造一個請求,支撐一下各方法的基礎方法 |
requests.get() | 獲取HTML網頁的主要方法,對應HTTP的GET |
requests.head() | 獲取HTML網頁頭的信息方法,對應HTTP的HEAD |
requests.post() | 向HTML網頁提交POST請求方法,對應HTTP的POST |
requests.put() | 向HTML網頁提交PUT請求的方法,對應HTTP的RUT |
requests.patch() | 向HTML網頁提交局部修改請求,對應于HTTP的PATCH |
requests.delete() | 向HTML頁面提交刪除請求,對應HTTP的DELETE |
get()方法詳解:
r = requests.get(url)
get()方法構造一個向服務器請求資源的Request對象,返回一個包含服務器資源的Response對象。
requests.get(url, params=None, **kwargs)
url:擬獲取頁面的url鏈接
params:url中的額外參數,字典或字節流格式,可選
**kwargs:12個控制訪問參數
Requests庫的2個重要對象
· Request
· Response:Response對象包含爬蟲返回的內容
Response對象的屬性
1. r.status_code :HTTP請求的返回狀態,200表示連接成功,404表示失敗
2. r.text :HTTP響應內容的字符串形式,即,url對應的頁面內容
3. r.encoding : 從HTTP header中猜測的相應內容編碼方式
4. r.apparent_encoding : 從內容中分析出的相應內容編碼方式(備選編碼方式)
5. r.content : HTTP響應內容的二進制形式
6. r.encoding :如果header中不存在charset,則認為編碼為ISO-8859-1 。
7. r.apparent_encoding :根據網頁內容分析出的編碼方式可以 看作是r.encoding的備選。
Response的編碼:
8. r.encoding : 從HTTP header中猜測的響應內容的編碼方式;如果header中不存在charset,則認為編碼為ISO-8859-1,r.text根據r.encoding顯示網頁內容
9.r.apparent_encoding : 根據網頁內容分析出的編碼方式,可以看作r.encoding的備選
10.r.raise_for_status() : 如果不是200,產生異常requests.HTTPError;
4.Robots協議
Robots Exclusion Standard 網絡爬蟲排除標準
作用:網站告知網絡爬蟲哪些頁面可以抓取,哪些不行。
形式:在網站根目錄下的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協議是建議但非約束性,網絡爬蟲可以不遵守,但存在法律風險。
實例:
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("爬取失敗")
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python網絡爬蟲與信息提取的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。