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

一文教會你用Python獲取網(wǎng)頁指定內(nèi)容

 更新時間:2022年03月28日 12:55:12   作者:liver100day  
Python用做數(shù)據(jù)處理還是相當(dāng)不錯的,如果你想要做爬蟲,Python是很好的選擇,它有很多已經(jīng)寫好的類包,只要調(diào)用即可完成很多復(fù)雜的功能,下面這篇文章主要給大家介紹了關(guān)于Python獲取網(wǎng)頁指定內(nèi)容的相關(guān)資料,需要的朋友可以參考下

前言

Python用做數(shù)據(jù)處理還是相當(dāng)不錯的,如果你想要做爬蟲,Python是很好的選擇,它有很多已經(jīng)寫好的類包,只要調(diào)用,即可完成很多復(fù)雜的功能
在我們開始之前,我們需要安裝一些環(huán)境依賴包,打開命令行

確保電腦中具有python和pip,如果沒有的話則需要自行進(jìn)行安裝

之后我們可使用pip安裝必備模塊 requests

pip install requests

requests是python實現(xiàn)的簡單易用的HTTP庫,使用起來比urllib簡潔很多,requests 允許你發(fā)送 HTTP/1.1 請求。指定 URL并添加查詢url字符串即可開始爬取網(wǎng)頁信息

1.抓取網(wǎng)頁源代碼

以該平臺為例,抓取網(wǎng)頁中的公司名稱數(shù)據(jù),網(wǎng)頁鏈接:https://www.crrcgo.cc/admin/crr_supplier.html?page=1

目標(biāo)網(wǎng)頁源代碼如下:

首先明確步驟

1.打開目標(biāo)站點(diǎn)

2.抓取目標(biāo)站點(diǎn)代碼并輸出

import requests

導(dǎo)入我們需要的requests功能模塊

page=requests.get('https://www.crrcgo.cc/admin/crr_supplier.html?page=1')

這句命令的意思就是使用get方式獲取該網(wǎng)頁的數(shù)據(jù)。實際上我們獲取到的就是瀏覽器打開百度網(wǎng)址時候首頁畫面的數(shù)據(jù)信息

print(page.text)

這句是把我們獲取數(shù)據(jù)的文字(text)內(nèi)容輸出(print)出來

import requestspage=requests.get('https://www.crrcgo.cc/admin/crr_supplier.html?page=1')print(page.text)

成功爬取到了目標(biāo)網(wǎng)頁源代碼

2.抓取一個網(wǎng)頁源代碼中的某標(biāo)簽內(nèi)容

但是上面抓取到的代碼充滿尖括號的一片字符,對我們沒有什么作用,這樣的充滿尖括號的數(shù)據(jù)就是我們從服務(wù)器收到的網(wǎng)頁文件,就像Office的doc、pptx文件格式一樣,網(wǎng)頁文件一般是html格式。我們的瀏覽器可以把這些html代碼數(shù)據(jù)展示成我們看到的網(wǎng)頁。

我們?nèi)绻枰@些字符里面提取有價值的數(shù)據(jù),就必須先了解標(biāo)記元素

每個標(biāo)記的文字內(nèi)容都是夾在兩個尖括號中間的,結(jié)尾尖括號用/開頭,尖括號內(nèi)(img和div)表示標(biāo)記元素的類型(圖片或文字),尖括號內(nèi)可以有其他的屬性(比如src)

標(biāo)記內(nèi)容文字才是我們需要的數(shù)據(jù),但我們要利用id或class屬性才能從眾多標(biāo)記中找到需要的標(biāo)記元素。

我們可以在電腦瀏覽器中打開任意網(wǎng)頁,按下f12鍵即可打開元素查看器(Elements),就可以看到組成這個頁面的成百上千個各種各樣的標(biāo)記元素

標(biāo)記元素是可以一層一層嵌套的,比如下面就是body嵌套了div元素,body是父層、上層元素;div是子層、下層元素。

<body>
    <div>十分鐘上手?jǐn)?shù)據(jù)爬蟲</div>
</body>

回到抓取上面來,現(xiàn)在我只想在網(wǎng)頁中抓取公司名這個數(shù)據(jù),其他的我不想要

查看網(wǎng)頁html代碼,發(fā)現(xiàn)公司名在標(biāo)簽detail_head里面

import requests
req=requests.get('https://www.crrcgo.cc/admin/crr_supplier.html?page=1')

這兩行上面解釋過了,是獲取頁面數(shù)據(jù)

from bs4 import BeautifulSoup

我們需要使用BeautifulSoup這個功能模塊來把充滿尖括號的html數(shù)據(jù)變?yōu)楦糜玫母袷剑琭rom bs4 import BeautifulSoup這個是說從bs4這個功能模塊中導(dǎo)入BeautifulSoup,是的,因為bs4中包含了多個模塊,BeautifulSoup只是其中一個

req.encoding = "utf-8"

指定獲取的網(wǎng)頁內(nèi)容用utf-8編碼

soup = BeautifulSoup(html.text, 'html.parser')

這句代碼用html解析器(parser)來分析我們requests得到的html文字內(nèi)容,soup就是我們解析出來的結(jié)果。

company_item=soup.find_all('div',class_="detail_head")

find是查找,find_all查找全部。查找標(biāo)記名是div并且class屬性是detail_head的全部元素

dd = company_item.text.strip()

strip() 方法用于移除字符串頭尾指定的字符(默認(rèn)為空格或換行符)或字符序列。在這里就是移除多余的尖括號的html數(shù)據(jù)

最后拼接之后代碼如下:

import requests
from bs4 import BeautifulSoup

req = requests.get(url="https://www.crrcgo.cc/admin/crr_supplier.html?page=1")
req.encoding = "utf-8"
html=req.text
soup = BeautifulSoup(req.text,features="html.parser")
company_item = soup.find("div",class_="detail_head")
dd = company_item.text.strip()
print(dd)

最后執(zhí)行結(jié)果成功的抓取到了網(wǎng)頁中我們想要的公司信息,但是卻只抓取到了一個公司,其余的則并未抓取到

所以我們需要加入一個循環(huán),抓取網(wǎng)頁中所有公司名,并沒多大改變

for company_item in company_items:
    dd = company_item.text.strip()
    print(dd)

最終代碼如下:

import requests
from bs4 import BeautifulSoup

req = requests.get(url="https://www.crrcgo.cc/admin/crr_supplier.html?page=1")
req.encoding = "utf-8"
html=req.text
soup = BeautifulSoup(req.text,features="html.parser")
company_items = soup.find_all("div",class_="detail_head")
for company_item in company_items:
    dd = company_item.text.strip()
    print(dd)

最終運(yùn)行結(jié)果查詢出了該網(wǎng)頁中所有的公司名

3.抓取多個網(wǎng)頁子標(biāo)簽的內(nèi)容

那我現(xiàn)在想要抓取多個網(wǎng)頁中的公司名呢?很簡單,大體代碼都已經(jīng)寫出,我們只需要再次加入一個循環(huán)即可
查看我們需要進(jìn)行抓取的網(wǎng)頁,發(fā)現(xiàn)當(dāng)網(wǎng)頁變化時,就只有page后面的數(shù)字會發(fā)生變化。當(dāng)然很多大的廠商的網(wǎng)頁,例如京東、淘寶 它們的網(wǎng)頁變化時常讓人摸不著頭腦,很難猜測。

inurl="https://www.crrcgo.cc/admin/crr_supplier.html?page="
for num in range(1,6):
    print("================正在爬蟲第"+str(num)+"頁數(shù)據(jù)==================")

寫入循環(huán),我們只抓取1到5頁的內(nèi)容,這里的循環(huán)我們使用range函數(shù)來實現(xiàn),range函數(shù)左閉右開的特性使得我們要抓取到5頁必須指定6

	outurl=inurl+str(num)
    req = requests.get(url=outurl)

將循環(huán)值與url拼接成完整的url,并獲取頁面數(shù)據(jù)

完整代碼如下:

import requests
from bs4 import BeautifulSoup

inurl="https://www.crrcgo.cc/admin/crr_supplier.html?page="
for num in range(1,6):
    print("================正在爬蟲第"+str(num)+"頁數(shù)據(jù)==================")
    outurl=inurl+str(num)
    req = requests.get(url=outurl)
    req.encoding = "utf-8"
    html=req.text
    soup = BeautifulSoup(req.text,features="html.parser")
    company_items = soup.find_all("div",class_="detail_head")
    for company_item in company_items:
        dd = company_item.text.strip()
        print(dd)

成功的抓取到了1-5頁所有的公司名(子標(biāo)簽)內(nèi)容

總結(jié)

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

相關(guān)文章

  • Python如何基于smtplib發(fā)不同格式的郵件

    Python如何基于smtplib發(fā)不同格式的郵件

    這篇文章主要介紹了Python如何基于smtplib發(fā)不同格式的郵件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • python搭建微信公眾平臺

    python搭建微信公眾平臺

    這篇文章主要介紹了python搭建微信公眾平臺的相關(guān)資料和技巧,感興趣的朋友可以參考一下
    2016-02-02
  • 基于Python實現(xiàn)全自動下載抖音視頻

    基于Python實現(xiàn)全自動下載抖音視頻

    這篇文章主要介紹了基于Python實現(xiàn)全自動下載抖音視頻,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • Python IDLE入門簡介

    Python IDLE入門簡介

    這篇文章主要介紹了Python IDLE入門簡介,具有一定借鑒價值,需要的朋友可以了解下。
    2017-12-12
  • Python生成直方圖方法實現(xiàn)詳解

    Python生成直方圖方法實現(xiàn)詳解

    這篇文章主要介紹了python OpenCV圖像直方圖處理,文章通過matplotlib畫一個直方圖展開詳情,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-11-11
  • Django對接支付寶實現(xiàn)支付寶充值金幣功能示例

    Django對接支付寶實現(xiàn)支付寶充值金幣功能示例

    今天小編就為大家分享一篇Django對接支付寶實現(xiàn)支付寶充值金幣功能示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python GUI Tkinter簡單實現(xiàn)個性簽名設(shè)計

    Python GUI Tkinter簡單實現(xiàn)個性簽名設(shè)計

    這篇文章主要為大家詳細(xì)介紹了Python GUI Tkinter簡單實現(xiàn)個性簽名設(shè)計,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • python??UPX?is?not?available問題解決方法

    python??UPX?is?not?available問題解決方法

    這篇文章主要介紹了python?UPX?is?not?available問題解決,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • 基于python實現(xiàn)MQTT發(fā)布訂閱過程原理解析

    基于python實現(xiàn)MQTT發(fā)布訂閱過程原理解析

    這篇文章主要介紹了基于python實現(xiàn)MQTT發(fā)布訂閱過程原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • python生成器與迭代器詳解

    python生成器與迭代器詳解

    本文主要給大家記錄一下列表生成式,生成器和迭代器的知識點(diǎn),希望對大家學(xué)習(xí)python能夠有所幫助
    2019-01-01

最新評論