首頁 > 後端開發 > Python教學 > python爬蟲爬取網頁數據並解析數據

python爬蟲爬取網頁數據並解析數據

WBOY
發布: 2022-08-15 20:19:01
轉載
7696 人瀏覽過

這篇文章為大家帶來了關於Python的相關知識,主要介紹了python爬蟲如何爬取網頁數據並解析數據,幫助大家更好的利用爬蟲分析網頁,下面一起來看一下,希望對大家有幫助。

python爬蟲爬取網頁數據並解析數據

【相關推薦:Python3影片教學

1.網路爬蟲的基本概念

網路爬蟲(又稱網路蜘蛛,機器人),就是模擬客戶端發送網路請求,接收請求回應,一種依照一定的規則,自動地抓取網路資訊的程式。
只要瀏覽器能夠做的事情,原則上,爬蟲都能夠做到。

2.網路爬蟲的功能

網路爬蟲可以取代手工做很多事情,例如可以用來做搜尋引擎,也可以爬取網站上面的圖片,例如有些朋友將某些網站上的圖片全部爬取下來,集中進行瀏覽,同時,網絡爬蟲也可以用於金融投資領域,比如可以自動爬取一些金融信息,並進行投資分析等。

有時,我們比較喜歡的新聞網站可能有幾個,每次都要分別打開這些新聞網站瀏覽,比較麻煩。此時可以利用網路爬蟲,將這多個新聞網站中的新聞資訊爬取下來,集中進行閱讀。

有時,我們在瀏覽網頁上的資訊的時候,會發現有很多廣告。此時同樣可以利用爬蟲將對應網頁上的資訊爬取過來,這樣就可以自動的過濾掉這些廣告,方便對資訊的閱讀與使用。

有時,我們需要進行行銷,那麼如何找到目標客戶以及目標客戶的聯繫方式是一個關鍵問題。我們可以手動地在網路中尋找,但是這樣的效率會很低。此時,我們利用爬蟲,可以設定對應的規則,自動地從網路中擷取目標使用者的聯絡資訊等數據,供我們進行行銷使用。

有時,我們想對某個網站的用戶資訊進行分析,例如分析該網站的用戶活躍度、發言數、熱門文章等信息,如果我們不是網站管理員,手工統計將是一個非常龐大的工程。此時,可以利用爬蟲輕鬆將這些資料採集到,以便進行進一步分析,而這一切爬取的操作,都是自動進行的,我們只需要編寫好對應的爬蟲,並設計好對應的規則即可。

除此之外,爬蟲還可以實現許多強大的功能。總而言之,爬蟲的出現,可以在一定程度上代替手工訪問網頁,從而,原先我們需要人工去訪問互聯網信息的操作,現在都可以用爬蟲自動化實現,這樣可以更高效率地利用好互聯網中的有效信息。

3.安裝第三方函式庫

在進行爬取資料和解析資料前,需要在Python運作環境中下載安裝第三方函式庫requests。

在Windows系統中,開啟cmd(命令提示字元)介面,在該介面輸入pip install requests,按回車鍵進行安裝。 (注意連接網路)如下圖

安裝完成,如圖

4.爬取淘寶首頁

# 请求库
import requests
# 用于解决爬取的数据格式化
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')
# 爬取的网页链接
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
登入後複製

運行結果,如圖

#5.爬取和解析淘寶網首頁

# 请求库
import requests
# 解析库
from bs4 import BeautifulSoup
# 用于解决爬取的数据格式化
import io
import sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')
# 爬取的网页链接
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
# 再次封装,获取具体标签内的内容
bs = BeautifulSoup(result,'html.parser')
# 具体标签
print("解析后的数据")
print(bs.span)
a={}
# 获取已爬取内容中的script标签内容
data=bs.find_all('script')
# 获取已爬取内容中的td标签内容
data1=bs.find_all('td')
# 循环打印输出
for i in data:
 a=i.text
 print(i.text,end='')
 for j in data1:
  print(j.text)
登入後複製

運行結果,如圖

6.小結

在對網頁程式碼進行爬取操作時,不能頻繁操作,更不要將其設定成死循環模式(每一次爬取則為對網頁的訪問,頻繁操作會導致系統崩潰,會追究其法律責任)。

所以在取得網頁資料後,將其儲存為本機文字模式,然後再解析(不再需要存取網頁)。

【相關推薦:Python3影片教學

以上是python爬蟲爬取網頁數據並解析數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:jb51.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板