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

Python中Requests-get方法的使用

 更新時(shí)間:2023年05月19日 11:26:51   作者:小劉不忙!  
本文主要介紹了Python中Requests-get方法的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

以https://books.toscrape.com/網(wǎng)站為例:

打開(kāi)網(wǎng)頁(yè)

先把網(wǎng)頁(yè)打開(kāi),然后右鍵檢查,找到網(wǎng)絡(luò)一欄,這個(gè)時(shí)候發(fā)現(xiàn)下面是空白,什么也沒(méi)有:

刷新一下就好了,刷新之后:

點(diǎn)擊第一個(gè)進(jìn)行查看:

可以看到請(qǐng)求方法是"GET"方法,請(qǐng)求的URL也可以看到。

頁(yè)面的最下方可以發(fā)現(xiàn)頁(yè)面不止一頁(yè),點(diǎn)擊到下一頁(yè)并且繼續(xù)檢查頁(yè)面:

現(xiàn)在使用相同的格式,輸入"https://books.toscrape.com/catalogue/page-1.html"進(jìn)行查看,發(fā)現(xiàn)回到了首頁(yè)。一般第一頁(yè)就是首頁(yè),所以后面的路徑也不會(huì)加上/catalogue/page-2.html,可以多看幾個(gè)頁(yè)面就會(huì)發(fā)現(xiàn)。

使用代碼獲取頁(yè)面內(nèi)容

headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36"
}

首先要添加爬蟲(chóng)的頭部,因?yàn)楹芏囗?yè)面對(duì)爬蟲(chóng)具有反爬的限制,加上頭部之后可以模擬正常的瀏覽器請(qǐng)求,成功幾率更高。這一部分在要訪問(wèn)的頁(yè)面的請(qǐng)求頭部分:

url = "https://books.toscrape.com/catalogue/page-1.html"

這一部分聲明要訪問(wèn)的網(wǎng)址。

responce = requests.get(url,headers=headers).text

把這一部分拆解開(kāi):

requests.get(url,headers=headers):帶著相應(yīng)的請(qǐng)求頭、以GET方式、訪問(wèn)上面的URL。

requests.get(url,headers=headers).text:將上述內(nèi)容以文本的方式進(jìn)行返回。

responce = requests.get(url,headers=headers).text:將內(nèi)容返回給response這個(gè)變量。

查看結(jié)果

運(yùn)行之后顯示出了相應(yīng)頁(yè)面的內(nèi)容。但格式有點(diǎn)凌亂,可以使用某些方法進(jìn)行調(diào)整。

頁(yè)面格式修改

這個(gè)時(shí)候就要引出BeautifulSoup這個(gè)庫(kù)。BeautifulSoup是一個(gè)Python庫(kù),用于從HTML和XML文檔中提取數(shù)據(jù)。它提供了一種簡(jiǎn)單和靈活的方式來(lái)解析和遍歷這些文檔,使得提取特定信息變得更加方便。

soup = BeautifulSoup(responce,"html.parser")

這一步的意義是將獲取的網(wǎng)頁(yè)內(nèi)容(響應(yīng)文本)使用BeautifulSoup進(jìn)行解析,以便能夠方便地提取和操作其中的數(shù)據(jù)。如果沒(méi)有這一步,那么無(wú)法使用BeautifulSoup的功能來(lái)解析網(wǎng)頁(yè)內(nèi)容。在沒(méi)有進(jìn)行解析的情況下,你將只是得到一個(gè)純文本的響應(yīng)內(nèi)容,難以直接提取所需的特定數(shù)據(jù)。你將不得不手動(dòng)處理響應(yīng)內(nèi)容來(lái)查找、提取所需的信息,這是非常繁瑣和容易出錯(cuò)的。
現(xiàn)在進(jìn)行print(soup)會(huì)發(fā)現(xiàn)頁(yè)面格式簡(jiǎn)潔了很多。

語(yǔ)法解釋:

  • response: 這是一個(gè)必需的參數(shù),表示要解析的文檔內(nèi)容。在這個(gè)例子中,response是通過(guò)發(fā)送HTTP請(qǐng)求獲取的網(wǎng)頁(yè)內(nèi)容,也就是服務(wù)器返回的響應(yīng)文本。它是一個(gè)字符串類型的變量,包含了HTML文檔的內(nèi)容。
  • “html.parser”: 這是第二個(gè)參數(shù),它指定了使用的解析器。在這種情況下,使用的是Python內(nèi)置的HTML解析器,稱為"html.parser"。該解析器是BeautifulSoup庫(kù)的一個(gè)組成部分,可以將HTML文檔轉(zhuǎn)換為解析樹(shù),以便進(jìn)行進(jìn)一步的處理和提取。

其他可選的解析器還有"lxml"和"html5lib"。它們都是第三方庫(kù),具有不同的特性和性能。選擇合適的解析器取決于你的需求和環(huán)境。

綜上所述,BeautifulSoup(response, “html.parser”)中的兩個(gè)參數(shù)分別表示要解析的文檔內(nèi)容和使用的解析器類型。

爬取書(shū)名

使用爬蟲(chóng)肯定是對(duì)內(nèi)容進(jìn)行爬取,接下來(lái)對(duì)書(shū)名進(jìn)行爬取。
思路大概分為幾步:相應(yīng)頁(yè)面的URL、請(qǐng)求頭的配置、頁(yè)面內(nèi)容的查看、代碼參數(shù)的配置。
URL以及請(qǐng)求頭都已經(jīng)配置完畢了,接下來(lái)對(duì)頁(yè)面內(nèi)容進(jìn)行查看,查看書(shū)名的地方都有什么特點(diǎn):

可以發(fā)現(xiàn),外部都有一個(gè)h3,然后內(nèi)部被a標(biāo)簽給包圍住了,接下來(lái)看代碼:

soup = BeautifulSoup(responce,"html.parser")
all_title = soup.findAll("h3")

對(duì)soup中的所有內(nèi)容進(jìn)行搜索,搜索其中包含在"h3"標(biāo)簽中的內(nèi)容,查看輸出:

可以發(fā)現(xiàn),確實(shí)輸出了"h3"標(biāo)簽中的內(nèi)容,但是其中的內(nèi)容并不是我們都想要的,接下來(lái)還要進(jìn)行過(guò)濾,看代碼:

all_title = soup.findAll("h3")
for i in all_title:
    title = i.find("a")
    print(title)

現(xiàn)在對(duì)每一個(gè)"h3"標(biāo)簽中的內(nèi)容進(jìn)行遍歷,然后找到其中"a"標(biāo)簽中的內(nèi)容,查看輸出:

針對(duì)于"a"標(biāo)簽中的內(nèi)容,我們不想要html中的標(biāo)簽,只想要html中的文本,所以繼續(xù)加參數(shù),看代碼:

all_title = soup.findAll("h3")
for i in all_title:
    title = i.find("a")
    print(title.string)

這里對(duì)于最后的print進(jìn)行了限制,輸出title的string類型,也就是只要其中的文本類型,查看輸出:

可以發(fā)現(xiàn),只輸出了書(shū)名,這個(gè)效果也正是我們想要的。

完整代碼以及注釋

代碼

from bs4 import BeautifulSoup
import requests
headers = {
    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36"
}#請(qǐng)求頭改成自己的
url = "https://books.toscrape.com/catalogue/page-1.html"
responce = requests.get(url,headers=headers).text
soup = BeautifulSoup(responce,"html.parser")
all_title = soup.findAll("h3")
for i in all_title:
    title = i.find("a")
    print(title.string)

注釋

  • from bs4 import BeautifulSoup: 導(dǎo)入BeautifulSoup庫(kù),這是為了使用其中的解析和提取功能。
  • import requests: 導(dǎo)入requests庫(kù),這是為了發(fā)送HTTP請(qǐng)求獲取網(wǎng)頁(yè)內(nèi)容。
  • headers = {...}: 定義了一個(gè)字典類型的變量headers,其中包含了請(qǐng)求頭信息。這個(gè)請(qǐng)求頭信息中設(shè)置了User-Agent字段,模擬瀏覽器發(fā)送請(qǐng)求。
  • url = "https://books.toscrape.com/catalogue/page-1.html": 定義了要爬取的目標(biāo)網(wǎng)頁(yè)的URL地址。
  • response = requests.get(url, headers=headers).text: 發(fā)送HTTP GET請(qǐng)求到指定的URL,并獲取響應(yīng)對(duì)象。.text將響應(yīng)內(nèi)容以文本形式返回。將獲取到的響應(yīng)文本賦值給response變量。
  • soup = BeautifulSoup(response, "html.parser"): 使用BeautifulSoup庫(kù)將獲取到的響應(yīng)文本進(jìn)行解析,創(chuàng)建一個(gè)BeautifulSoup對(duì)象。傳入?yún)?shù)response作為要解析的文檔內(nèi)容,以及解析器類型"html.parser"。
  • all_title = soup.findAll("h3"): 使用BeautifulSoup對(duì)象的findAll方法,查找所有<h3>標(biāo)簽,并將結(jié)果存儲(chǔ)在變量all_title中。findAll返回一個(gè)列表,其中包含了所有匹配的標(biāo)簽。
  • for i in all_title:: 對(duì)于all_title列表中的每個(gè)元素進(jìn)行迭代。
  • title = i.find("a"): 在當(dāng)前迭代的<h3>標(biāo)簽中,使用find方法查找第一個(gè)<a>標(biāo)簽,并將結(jié)果存儲(chǔ)在變量title中。
  • print(title.string): 打印title標(biāo)簽的文本內(nèi)容,即書(shū)籍的標(biāo)題。使用.string獲取標(biāo)簽內(nèi)的文本。

這段代碼的作用是從指定的網(wǎng)頁(yè)中爬取書(shū)籍標(biāo)題信息,并將其打印出來(lái)。它使用requests庫(kù)發(fā)送HTTP請(qǐng)求獲取網(wǎng)頁(yè)內(nèi)容,然后使用BeautifulSoup庫(kù)解析網(wǎng)頁(yè)并提取所需信息。最后通過(guò)循環(huán)打印出每個(gè)書(shū)籍的標(biāo)題。

翻頁(yè)查詢所有

放到下一篇詳細(xì)進(jìn)行介紹。

到此這篇關(guān)于Python中Requests-get方法的使用的文章就介紹到這了,更多相關(guān)Python Requests-get內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python接口自動(dòng)化之正則用例參數(shù)化的示例詳解

    python接口自動(dòng)化之正則用例參數(shù)化的示例詳解

    這篇文章主要介紹了python接口自動(dòng)化之正則用例參數(shù)化,它是一個(gè)特殊的字符序列,它能幫助你方便的檢查一個(gè)字符串是否與某種模式匹配,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Python re.split方法分割字符串的實(shí)現(xiàn)示例

    Python re.split方法分割字符串的實(shí)現(xiàn)示例

    本文主要介紹了Python re.split方法分割字符串的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Python進(jìn)行添加,讀取和刪除Word文檔屬性

    Python進(jìn)行添加,讀取和刪除Word文檔屬性

    在Python中處理Word文檔時(shí),對(duì)文檔屬性進(jìn)行操作是一項(xiàng)重要的任務(wù),下面我們來(lái)看看如何使用Python實(shí)現(xiàn)對(duì)Word文檔屬性的添加,讀取和刪除操作吧
    2025-02-02
  • Python替換月份為英文縮寫(xiě)的實(shí)現(xiàn)方法

    Python替換月份為英文縮寫(xiě)的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇Python替換月份為英文縮寫(xiě)的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • 使用graphics.py實(shí)現(xiàn)2048小游戲

    使用graphics.py實(shí)現(xiàn)2048小游戲

    本文給大家分享的是使用Python實(shí)現(xiàn)2048小游戲的源碼,非QT實(shí)現(xiàn)的哦,推薦給大家,有需要的小伙伴參考下吧。
    2015-03-03
  • 最新評(píng)論