最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

在日常學(xué)習和工作中,我們經(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ā)者模式中會自動選中對應(yīng)的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請求,并可以處理響應(yīng)數(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請求,并處理響應(yīng)數(shù)據(jù)。使用requests庫可以更方便地發(fā)送各種類型的請求,如GET,POST等,并可以設(shè)置請求頭,傳遞參數(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是比較底層的庫,需要手動處理請求和響應(yīng),而requests提供了更高級的API,簡化了請求和響應(yīng)的處理。
  • requests庫更加簡潔和易于使用,并提供了更多的功能,如自動處理重定向,會話管理等。

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

3. 更改用戶代理

在使用Python進行網(wǎng)頁爬取時,許多網(wǎng)站會通過檢查HTTP請求頭中的User-Agent字段來識別發(fā)出請求的客戶端類型。設(shè)置用戶代理(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()用法

參考資料

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

相關(guān)文章

最新評論

历史| 宿迁市| 鸡西市| 岳阳市| 喀喇沁旗| 淅川县| 伊吾县| 纳雍县| 腾冲县| 永寿县| 谢通门县| 上林县| 台江县| 高州市| 定西市| 永安市| 三河市| 黎城县| 钟山县| 临泽县| 台州市| 岱山县| 平塘县| 紫云| 孟津县| 凌云县| 新乡县| 旬阳县| 大庆市| 三门峡市| 晋州市| 绍兴县| 彝良县| 万荣县| 鱼台县| 民乐县| 涞水县| 金华市| 高唐县| 密云县| 宁海县|