欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于Python實現(xiàn)web網(wǎng)頁內(nèi)容爬取的方法

 更新時間:2024年12月25日 17:01:19   作者:酒釀小圓子~  
在日常學習和工作中,我們經(jīng)常會遇到需要爬取網(wǎng)頁內(nèi)容的需求,今天就如何基于Python實現(xiàn)web網(wǎng)頁內(nèi)容爬取進行講解,感興趣的朋友一起看看吧

在日常學習和工作中,我們經(jīng)常會遇到需要爬取網(wǎng)頁內(nèi)容的需求,今天就如何基于Python實現(xiàn)web網(wǎng)頁內(nèi)容爬取進行講解。

1. 網(wǎng)頁分析

用Chrome瀏覽器打開網(wǎng)頁(https://car.yiche.com/)并進行分析。

F12鍵打開開發(fā)者視圖,如下所示:

在網(wǎng)頁頁面上想要查看的頁面內(nèi)容處,點擊 右鍵->檢查(inspect) ,開發(fā)者模式中會自動選中對應的HTML代碼。

分析發(fā)現(xiàn)車牌的名字在 name=“div”, attrs={“class”: “item-brand”}里面

2. 獲取網(wǎng)頁信息

在Python中,我們可以使用 urllib.requestrequests 這兩個庫來發(fā)送HTTP請求。這兩個庫都是用來處理URLs的,但是有一些區(qū)別。

2.1 使用默認的urllib.request庫

urllib.request是Python標準庫中的一個模塊,用于處理URLs的打開,讀取和下載。它提供了一個簡單的接口來發(fā)送HTTP請求,并可以處理響應數(shù)據(jù)。

import urllib.request
from bs4 import BeautifulSoup
url = "https://car.yiche.com/"
page = urllib.request.urlopen(url)
soup = BeautifulSoup(page, "html.parser")
result_list = []
# 篩選數(shù)據(jù)
tag_list = soup.find_all(name="div", attrs={"class": "item-brand"})
for tag in tag_list:
    result_list.append(tag.attrs["data-name"])
print(result_list)

2.2 使用requests庫

requests是一個第三方庫,它提供了更簡潔的API來發(fā)送HTTP請求,并處理響應數(shù)據(jù)。使用requests庫可以更方便地發(fā)送各種類型的請求,如GET,POST等,并可以設置請求頭,傳遞參數(shù)等。

首先在環(huán)境中安裝 requests 庫,命令如下:

pip install requests
from bs4 import BeautifulSoup
import requests
url = "https://car.yiche.com/"
req = requests.get(url=url)
soup = BeautifulSoup(req.content, "html.parser")
result_list = []
# 篩選數(shù)據(jù)
tag_list = soup.find_all(name="div", attrs={"class": "item-brand"})
for tag in tag_list:
    result_list.append(tag.attrs["data-name"])
print(result_list)

輸出如下:

['奧迪', '埃安', 'AITO', '阿維塔', '阿斯頓·馬丁', '阿爾法·羅密歐', 'AUDI', '阿莫迪羅', 'AUXUN傲旋', '愛馳', 'Apollo', 'ALPINA', 'Abarth', 'ABT', '阿爾特', '安凱客車', 'Aurus', 'Arash', '安徽獵豹', 'ATOM', '艾康尼克', 'ASKA', 'Alef', 'APEX', 'Agile Automotive', 'ATS', 'AKXY2', 'Alpine', 'Aspark', 'Aviar', 'AURA', 'AIM', 'Ariel', 'Aria', 'Atlis', 'Alpha Motor', 'AFEELA', 'AEHRA', 'AC Schnitzer', 'Adria', 'AZNOM', 'AEV ROBOTICS', '比亞迪', '奔馳', '本田', '寶馬', '別克', '保時捷', '北京', '奔騰', '標致', '寶駿', '賓利', 'BAW北汽制造', '北京汽車', '布加迪', '博速', '巴菲特', '霸王龍', '奔馳卡車',.......]

2.3 urllib.request 和 requests庫區(qū)別

urllib.requestrequests 這兩個庫的主要區(qū)別如下:

  • urllib.request是Python的標準庫,而requests是第三方庫,需要額外安裝。
  • urllib.request是比較底層的庫,需要手動處理請求和響應,而requests提供了更高級的API,簡化了請求和響應的處理。
  • requests庫更加簡潔和易于使用,并提供了更多的功能,如自動處理重定向,會話管理等。

參考資料:python urllib.request和request的區(qū)別

3. 更改用戶代理

在使用Python進行網(wǎng)頁爬取時,許多網(wǎng)站會通過檢查HTTP請求頭中的User-Agent字段來識別發(fā)出請求的客戶端類型。設置用戶代理(User-Agent)是為了模仿真實瀏覽器的請求,避免被網(wǎng)站識別為自動化工具而遭封鎖,同時確保獲取完整的網(wǎng)頁內(nèi)容,并遵守網(wǎng)站的訪問規(guī)則。

agent = {'User-Agent': 'Mozilla/5.0 (iPad; U; CPU OS 3_2_1 like Mac OS X; en-us) AppleWebKit / 531.21.10(KHTML, likeGecko) Mobile / 7B405'}
req = requests.get(url=url, headers=agent)

4. BeautifulSoup庫篩選數(shù)據(jù)

BeautifulSoup庫是一種HTML解析庫,可以將HTML文檔解析成Python對象,使得開發(fā)者可以方便地從HTML文檔中提取數(shù)據(jù)。

首先需要安裝 BeautifulSoup 庫。

pip install BeautifulSoup4

4.1 soup.find()和soup.find_all() 函數(shù)

soup.find()和soup.find_all() 函數(shù)可以用來查找網(wǎng)頁中特定的元素,區(qū)別在于:

  • soup.find()查找到一次即停止
  • soup.find_all() 可以查找到所有記錄

soup.find()和soup.find_all() 函數(shù)的使用方式可參考:Python中bs4的soup.find()和soup.find_all()用法

參考資料

到此這篇關于基于Python實現(xiàn)web網(wǎng)頁內(nèi)容爬取的文章就介紹到這了,更多相關Python web網(wǎng)頁內(nèi)容爬取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python實現(xiàn)圖形用戶界面計算器

    Python實現(xiàn)圖形用戶界面計算器

    這篇文章主要為大家詳細介紹了Python實現(xiàn)圖形用戶界面計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Python使用Plotly繪制常見5種動態(tài)交互式圖表

    Python使用Plotly繪制常見5種動態(tài)交互式圖表

    Plotly是一個非常強大的開源數(shù)據(jù)可視化框架,它通過構(gòu)建基于 HTML 的交互式圖表來顯示信息,可創(chuàng)建各種形式的精美圖表。本文將用Plotly庫繪制常見的五種動態(tài)交互式圖表,感興趣的可以學習一下
    2022-03-03
  • Python創(chuàng)建普通菜單示例【基于win32ui模塊】

    Python創(chuàng)建普通菜單示例【基于win32ui模塊】

    這篇文章主要介紹了Python創(chuàng)建普通菜單,結(jié)合實例形式分析了Python基于win32ui模塊創(chuàng)建普通菜單及添加菜單項的相關操作技巧,并附帶說明了win32ui模塊的安裝命令,需要的朋友可以參考下
    2018-05-05
  • Python?解釋器的站點配置和模塊搜索路徑詳解

    Python?解釋器的站點配置和模塊搜索路徑詳解

    Python?解釋器的站點配置是指一組配置和路徑設置,用于支持特定于站點的定制和擴展,這些配置和路徑信息由?Python?的內(nèi)置?site?模塊提供,這篇文章主要介紹了Python?解釋器的站點配置和模塊搜索路徑詳解,需要的朋友可以參考下
    2022-01-01
  • Django入門使用示例

    Django入門使用示例

    這篇文章主要介紹了Django入門使用示例,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • Python Matplotlib繪制動畫的代碼詳解

    Python Matplotlib繪制動畫的代碼詳解

    使用matplotlib可以很容易地創(chuàng)建動畫框架。在本文中我們就將利用Matplotlib制作幾個簡單的動畫,文中的示例代碼講講詳細,感興趣的可以了解下
    2022-05-05
  • Python入門案例之找出文件中出現(xiàn)次數(shù)最多的10個單詞

    Python入門案例之找出文件中出現(xiàn)次數(shù)最多的10個單詞

    這篇文章主要為大家?guī)硪粋€簡單的Python入門案例——找出文件中出現(xiàn)次數(shù)最多的10個單詞,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-02-02
  • 使用Python讀取和寫入JSON文件的代碼示例

    使用Python讀取和寫入JSON文件的代碼示例

    在Python開發(fā)中,處理JSON數(shù)據(jù)是非常常見的任務,JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,易于人閱讀和編寫,同時也易于機器解析和生成,本文給大家介紹了如何使用 Python 讀取和寫入 JSON 文件,需要的朋友可以參考下
    2024-12-12
  • 如何用Python進行回歸分析與相關分析

    如何用Python進行回歸分析與相關分析

    這篇文章主要介紹了如何用Python進行回歸分析與相關分析,這兩部分內(nèi)容會放在一起講解,文中提供了解決思路以及部分實現(xiàn)代碼,需要的朋友可以參考下
    2023-03-03
  • django云端留言板實例詳解

    django云端留言板實例詳解

    這篇文章主要介紹了django云端留言板實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07

最新評論