python爬蟲爬取網(wǎng)頁數(shù)據(jù)并解析數(shù)據(jù)
1.網(wǎng)絡(luò)爬蟲的基本概念
網(wǎng)絡(luò)爬蟲(又稱網(wǎng)絡(luò)蜘蛛,機(jī)器人),就是模擬客戶端發(fā)送網(wǎng)絡(luò)請(qǐng)求,接收請(qǐng)求響應(yīng),一種按照一定的規(guī)則,自動(dòng)地抓取互聯(lián)網(wǎng)信息的程序。
只要瀏覽器能夠做的事情,原則上,爬蟲都能夠做到。
2.網(wǎng)絡(luò)爬蟲的功能

網(wǎng)絡(luò)爬蟲可以代替手工做很多事情,比如可以用于做搜索引擎,也可以爬取網(wǎng)站上面的圖片,比如有些朋友將某些網(wǎng)站上的圖片全部爬取下來,集中進(jìn)行瀏覽,同時(shí),網(wǎng)絡(luò)爬蟲也可以用于金融投資領(lǐng)域,比如可以自動(dòng)爬取一些金融信息,并進(jìn)行投資分析等。
有時(shí),我們比較喜歡的新聞網(wǎng)站可能有幾個(gè),每次都要分別打開這些新聞網(wǎng)站進(jìn)行瀏覽,比較麻煩。此時(shí)可以利用網(wǎng)絡(luò)爬蟲,將這多個(gè)新聞網(wǎng)站中的新聞信息爬取下來,集中進(jìn)行閱讀。
有時(shí),我們?cè)跒g覽網(wǎng)頁上的信息的時(shí)候,會(huì)發(fā)現(xiàn)有很多廣告。此時(shí)同樣可以利用爬蟲將對(duì)應(yīng)網(wǎng)頁上的信息爬取過來,這樣就可以自動(dòng)的過濾掉這些廣告,方便對(duì)信息的閱讀與使用。
有時(shí),我們需要進(jìn)行營銷,那么如何找到目標(biāo)客戶以及目標(biāo)客戶的聯(lián)系方式是一個(gè)關(guān)鍵問題。我們可以手動(dòng)地在互聯(lián)網(wǎng)中尋找,但是這樣的效率會(huì)很低。此時(shí),我們利用爬蟲,可以設(shè)置對(duì)應(yīng)的規(guī)則,自動(dòng)地從互聯(lián)網(wǎng)中采集目標(biāo)用戶的聯(lián)系方式等數(shù)據(jù),供我們進(jìn)行營銷使用。
有時(shí),我們想對(duì)某個(gè)網(wǎng)站的用戶信息進(jìn)行分析,比如分析該網(wǎng)站的用戶活躍度、發(fā)言數(shù)、熱門文章等信息,如果我們不是網(wǎng)站管理員,手工統(tǒng)計(jì)將是一個(gè)非常龐大的工程。此時(shí),可以利用爬蟲輕松將這些數(shù)據(jù)采集到,以便進(jìn)行進(jìn)一步分析,而這一切爬取的操作,都是自動(dòng)進(jìn)行的,我們只需要編寫好對(duì)應(yīng)的爬蟲,并設(shè)計(jì)好對(duì)應(yīng)的規(guī)則即可。
除此之外,爬蟲還可以實(shí)現(xiàn)很多強(qiáng)大的功能??傊?,爬蟲的出現(xiàn),可以在一定程度上代替手工訪問網(wǎng)頁,從而,原先我們需要人工去訪問互聯(lián)網(wǎng)信息的操作,現(xiàn)在都可以用爬蟲自動(dòng)化實(shí)現(xiàn),這樣可以更高效率地利用好互聯(lián)網(wǎng)中的有效信息。
3.安裝第三方庫
在進(jìn)行爬取數(shù)據(jù)和解析數(shù)據(jù)前,需要在Python運(yùn)行環(huán)境中下載安裝第三方庫requests。
在Windows系統(tǒng)中,打開cmd(命令提示符)界面,在該界面輸入pip install requests,按回車鍵進(jìn)行安裝。(注意連接網(wǎng)絡(luò))如下圖

安裝完成,如圖

4.爬取淘寶首頁
# 請(qǐng)求庫
import requests
# 用于解決爬取的數(shù)據(jù)格式化
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')
# 爬取的網(wǎng)頁鏈接
r= requests.get("https://www.taobao.com/")
# 類型
# print(type(r))
print(r.status_code)
# 中文顯示
# r.encoding='utf-8'
r.encoding=None
print(r.encoding)
print(r.text)
result = r.text
運(yùn)行結(jié)果,如圖

5.爬取和解析淘寶網(wǎng)首頁
# 請(qǐng)求庫
import requests
# 解析庫
from bs4 import BeautifulSoup
# 用于解決爬取的數(shù)據(jù)格式化
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')
# 爬取的網(wǎng)頁鏈接
r= requests.get("https://www.taobao.com/")
# 類型
# print(type(r))
print(r.status_code)
# 中文顯示
# r.encoding='utf-8'
r.encoding=None
print(r.encoding)
print(r.text)
result = r.text
# 再次封裝,獲取具體標(biāo)簽內(nèi)的內(nèi)容
bs = BeautifulSoup(result,'html.parser')
# 具體標(biāo)簽
print("解析后的數(shù)據(jù)")
print(bs.span)
a={}
# 獲取已爬取內(nèi)容中的script標(biāo)簽內(nèi)容
data=bs.find_all('script')
# 獲取已爬取內(nèi)容中的td標(biāo)簽內(nèi)容
data1=bs.find_all('td')
# 循環(huán)打印輸出
for i in data:
a=i.text
print(i.text,end='')
for j in data1:
print(j.text)
運(yùn)行結(jié)果,如圖

6.小結(jié)
在對(duì)網(wǎng)頁代碼進(jìn)行爬取操作時(shí),不能頻繁操作,更不要將其設(shè)置成死循環(huán)模式(每一次爬取則為對(duì)網(wǎng)頁的訪問,頻繁操作會(huì)導(dǎo)致系統(tǒng)崩潰,會(huì)追究其法律責(zé)任)。
所以在獲取網(wǎng)頁數(shù)據(jù)后,將其保存為本地文本模式,再對(duì)其進(jìn)行解析(不再需要訪問網(wǎng)頁)。
以上就是python爬蟲爬取網(wǎng)頁數(shù)據(jù)并解析數(shù)據(jù)的詳細(xì)內(nèi)容,更多關(guān)于python爬取網(wǎng)頁數(shù)據(jù)并解析的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Django框架視圖層URL映射與反向解析實(shí)例分析
這篇文章主要介紹了Django框架視圖層URL映射與反向解析,結(jié)合實(shí)例形式分析了Django框架普通url映射、命名URL參數(shù)映射、分布式URL映射、反向解析等相關(guān)操作技巧,需要的朋友可以參考下2019-07-07
簡(jiǎn)單的命令查看安裝的python版本號(hào)
在本篇內(nèi)容里小編給大家整理的是關(guān)于簡(jiǎn)單的命令查看安裝的python版本號(hào)的文章,需要的朋友們可以參考下。2020-08-08
python torch.utils.data.DataLoader使用方法
這篇文章主要介紹了python torch.utils.data.DataLoader使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Python3加密解密庫Crypto的RSA加解密和簽名/驗(yàn)簽實(shí)現(xiàn)方法實(shí)例
這篇文章主要介紹了Python3加密解密庫Crypto的RSA加解密和簽名/驗(yàn)簽實(shí)現(xiàn)方法實(shí)例,需要的朋友可以參考下2020-02-02
django獲取from表單multiple-select的value和id的方法
今天小編就為大家分享一篇django獲取from表單multiple-select的value和id的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Python手拉手教你爬取貝殼房源數(shù)據(jù)的實(shí)戰(zhàn)教程
隨著人工智能的不斷發(fā)展,機(jī)器學(xué)習(xí)這門技術(shù)也越來越重要,很多人都開啟了學(xué)習(xí)機(jī)器學(xué)習(xí),本文就介紹了機(jī)器學(xué)習(xí)的基礎(chǔ)內(nèi)容,了解python爬蟲,本文給大家分享Python爬取貝殼房源數(shù)據(jù)的實(shí)戰(zhàn)教程,感興趣的朋友一起學(xué)習(xí)吧2021-05-05

