這篇文章將為大家詳細(xì)講解有關(guān)做python數(shù)據(jù)爬蟲怎么爬取數(shù)據(jù),小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

爬蟲簡介:
爬蟲就是自動(dòng)獲取網(wǎng)頁內(nèi)容的程序,例如搜索引擎,Google,Baidu 等,每天都運(yùn)行著龐大的爬蟲系統(tǒng),從全世界的網(wǎng)站中爬蟲數(shù)據(jù),供用戶檢索時(shí)使用。
爬蟲流程:
1、模擬請(qǐng)求網(wǎng)頁。模擬瀏覽器,打開目標(biāo)網(wǎng)站。
2、獲取數(shù)據(jù)。打開網(wǎng)站之后,就可以自動(dòng)化的獲取我們所需要的網(wǎng)站數(shù)據(jù)。
3、保存數(shù)據(jù)。拿到數(shù)據(jù)之后,需要持久化到本地文件或者數(shù)據(jù)庫等存儲(chǔ)設(shè)備中。
數(shù)據(jù)爬蟲——Requests 使用
Requests 庫是 Python 中發(fā)起 HTTP 請(qǐng)求的庫,使用非常方便簡單。
模擬發(fā)送 HTTP 請(qǐng)求
發(fā)送 GET 請(qǐng)求(當(dāng)我們用瀏覽器打開豆瓣首頁時(shí),其實(shí)發(fā)送的最原始的請(qǐng)求就是 GET 請(qǐng)求)
import requests
res = requests.get('http://www.douban.com')
print(res)
print(type(res))
>>>
<Response [200]>
<class 'requests.models.Response'>可以看到,我們得到的是一個(gè) Response 對(duì)象。
如果我們要獲取網(wǎng)站返回的數(shù)據(jù),可以使用 text 或者 content 屬性來獲取
text:是以字符串的形式返回?cái)?shù)據(jù)
content:是以二進(jìn)制的方式返回?cái)?shù)據(jù)
print(type(res.text))
print(res.text)
>>>
<class 'str'> <!DOCTYPE HTML>
<html class="">
<head>
<meta charset="UTF-8">
<meta name="google-site-verification" content="ok0wCgT20tBBgo9_zat2iAcimtN4Ftf5ccsh092Xeyw" />
<meta name="description" content="提供圖書、電影、音樂唱片的推薦、評(píng)論和價(jià)格比較,以及城市獨(dú)特的文化生活。">
<meta name="keywords" content="豆瓣,廣播,登陸豆瓣">.....
發(fā)送 POST 請(qǐng)求(對(duì)于 POST 請(qǐng)求,一般就是提交一個(gè)表單)
r = requests.post('http://www.xxxx.com', data={"key": "value"})header 增強(qiáng)
對(duì)于有些網(wǎng)站,會(huì)拒絕掉沒有攜帶 header 的請(qǐng)求的,所以需要做一些 header 增強(qiáng)。比如:UA,Cookie,host 等等信息。
header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36",
"Cookie": "your cookie"}
res = requests.get('http://www.xxx.com', headers=header)解析 HTML
現(xiàn)在我們已經(jīng)獲取到了網(wǎng)頁返回的數(shù)據(jù),即 HTML 代碼,下面就需要解析 HTML,來提取其中有效的信息。BeautifulSoup 是 Python 的一個(gè)庫,最主要的功能是從網(wǎng)頁解析數(shù)據(jù)。
from bs4 import BeautifulSoup # 導(dǎo)入 BeautifulSoup 的方法 # 可以傳入一段字符串,或者傳入一個(gè)文件句柄。一般都會(huì)先用 requests 庫獲取網(wǎng)頁內(nèi)容,然后使用 soup 解析。 soup = BeautifulSoup(html_doc,'html.parser') # 這里一定要指定解析器,可以使用默認(rèn)的 html,也可以使用 lxml。 print(soup.prettify()) # 按照標(biāo)準(zhǔn)的縮進(jìn)格式輸出獲取的 soup 內(nèi)容。
XPath 定位
XPath 是 XML 的路徑語言,是通過元素和屬性進(jìn)行導(dǎo)航定位的。幾種常用的表達(dá)式
表達(dá)式含義node選擇 node 節(jié)點(diǎn)的所有子節(jié)點(diǎn)/從根節(jié)點(diǎn)選取//選取所有當(dāng)前節(jié)點(diǎn).當(dāng)前節(jié)點(diǎn)..父節(jié)點(diǎn)@屬性選取text()當(dāng)前路徑下的文本內(nèi)容,一些簡單的例子:
xpath('node') # 選取 node 節(jié)點(diǎn)的所有子節(jié)點(diǎn)
xpath('/div') # 從根節(jié)點(diǎn)上選取 div 元素
xpath('//div') # 選取所有 div 元素
xpath('./div') # 選取當(dāng)前節(jié)點(diǎn)下的 div 元素
xpath('//@id') # 選取所有 id 屬性的節(jié)點(diǎn)關(guān)于做python數(shù)據(jù)爬蟲怎么爬取數(shù)據(jù)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
網(wǎng)站題目:做python數(shù)據(jù)爬蟲怎么爬取數(shù)據(jù)-創(chuàng)新互聯(lián)
URL分享:http://www.chinadenli.net/article2/ccciic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、用戶體驗(yàn)、企業(yè)網(wǎng)站制作、動(dòng)態(tài)網(wǎng)站、電子商務(wù)、ChatGPT
聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容