python爬蟲爬取網(wǎng)頁數(shù)據(jù)并解析數(shù)據(jù)
1.網(wǎng)絡(luò)爬蟲的基本概念
網(wǎng)絡(luò)爬蟲(又稱網(wǎng)絡(luò)蜘蛛,機器人),就是模擬客戶端發(fā)送網(wǎng)絡(luò)請求,接收請求響應(yīng),一種按照一定的規(guī)則,自動地抓取互聯(lián)網(wǎng)信息的程序。
只要瀏覽器能夠做的事情,原則上,爬蟲都能夠做到。
2.網(wǎng)絡(luò)爬蟲的功能
網(wǎng)絡(luò)爬蟲可以代替手工做很多事情,比如可以用于做搜索引擎,也可以爬取網(wǎng)站上面的圖片,比如有些朋友將某些網(wǎng)站上的圖片全部爬取下來,集中進行瀏覽,同時,網(wǎng)絡(luò)爬蟲也可以用于金融投資領(lǐng)域,比如可以自動爬取一些金融信息,并進行投資分析等。
有時,我們比較喜歡的新聞網(wǎng)站可能有幾個,每次都要分別打開這些新聞網(wǎng)站進行瀏覽,比較麻煩。此時可以利用網(wǎng)絡(luò)爬蟲,將這多個新聞網(wǎng)站中的新聞信息爬取下來,集中進行閱讀。
有時,我們在瀏覽網(wǎng)頁上的信息的時候,會發(fā)現(xiàn)有很多廣告。此時同樣可以利用爬蟲將對應(yīng)網(wǎng)頁上的信息爬取過來,這樣就可以自動的過濾掉這些廣告,方便對信息的閱讀與使用。
有時,我們需要進行營銷,那么如何找到目標(biāo)客戶以及目標(biāo)客戶的聯(lián)系方式是一個關(guān)鍵問題。我們可以手動地在互聯(lián)網(wǎng)中尋找,但是這樣的效率會很低。此時,我們利用爬蟲,可以設(shè)置對應(yīng)的規(guī)則,自動地從互聯(lián)網(wǎng)中采集目標(biāo)用戶的聯(lián)系方式等數(shù)據(jù),供我們進行營銷使用。
有時,我們想對某個網(wǎng)站的用戶信息進行分析,比如分析該網(wǎng)站的用戶活躍度、發(fā)言數(shù)、熱門文章等信息,如果我們不是網(wǎng)站管理員,手工統(tǒng)計將是一個非常龐大的工程。此時,可以利用爬蟲輕松將這些數(shù)據(jù)采集到,以便進行進一步分析,而這一切爬取的操作,都是自動進行的,我們只需要編寫好對應(yīng)的爬蟲,并設(shè)計好對應(yīng)的規(guī)則即可。
除此之外,爬蟲還可以實現(xiàn)很多強大的功能??傊?,爬蟲的出現(xiàn),可以在一定程度上代替手工訪問網(wǎng)頁,從而,原先我們需要人工去訪問互聯(lián)網(wǎng)信息的操作,現(xiàn)在都可以用爬蟲自動化實現(xiàn),這樣可以更高效率地利用好互聯(lián)網(wǎng)中的有效信息。
3.安裝第三方庫
在進行爬取數(shù)據(jù)和解析數(shù)據(jù)前,需要在Python運行環(huán)境中下載安裝第三方庫requests。
在Windows系統(tǒng)中,打開cmd(命令提示符)界面,在該界面輸入pip install requests,按回車鍵進行安裝。(注意連接網(wǎng)絡(luò))如下圖
安裝完成,如圖
4.爬取淘寶首頁
# 請求庫 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
運行結(jié)果,如圖
5.爬取和解析淘寶網(wǎ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)
運行結(jié)果,如圖
6.小結(jié)
在對網(wǎng)頁代碼進行爬取操作時,不能頻繁操作,更不要將其設(shè)置成死循環(huán)模式(每一次爬取則為對網(wǎng)頁的訪問,頻繁操作會導(dǎo)致系統(tǒng)崩潰,會追究其法律責(zé)任)。
所以在獲取網(wǎng)頁數(shù)據(jù)后,將其保存為本地文本模式,再對其進行解析(不再需要訪問網(wǎng)頁)。
以上就是python爬蟲爬取網(wǎng)頁數(shù)據(jù)并解析數(shù)據(jù)的詳細(xì)內(nèi)容,更多關(guān)于python爬取網(wǎng)頁數(shù)據(jù)并解析的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
win10下Python3.6安裝、配置以及pip安裝包教程
下面小編就為大家?guī)硪黄獁in10下Python3.6安裝、配置以及pip安裝包教程。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10Python實現(xiàn)從Markdown到PDF的轉(zhuǎn)換的方法
Markdown,以其簡潔的語法和易于閱讀的特性,成為了許多作家、開發(fā)者和學(xué)生記錄思想、編寫教程或撰寫報告的首選格式,然而,在分享或打印這些文檔時,Markdown的純文本形式可能無法滿足對版式和布局的專業(yè)需求,本文將介紹如何用Python代碼輕松實現(xiàn)從Markdown到PDF的轉(zhuǎn)換2024-07-07Pycharm創(chuàng)建python文件自動添加日期作者等信息(步驟詳解)
這篇文章主要介紹了Pycharm創(chuàng)建python文件自動添加日期作者等信息(步驟詳解),本文分步驟給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02Python發(fā)送網(wǎng)絡(luò)請求(requests)
這篇文章主要介紹了Python發(fā)送網(wǎng)絡(luò)請求(requests),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09Python調(diào)用Zoomeye搜索接口的實現(xiàn)
本文主要介紹了Python調(diào)用Zoomeye搜索接口的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Django框架cookie和session方法及參數(shù)設(shè)置
這篇文章主要為大家介紹了Django框架cookie和session參數(shù)設(shè)置及介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03