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

Python中Requests-get方法的使用

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

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

打開網(wǎng)頁

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

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

點擊第一個進行查看:

可以看到請求方法是"GET"方法,請求的URL也可以看到。

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

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

使用代碼獲取頁面內(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"
}

首先要添加爬蟲的頭部,因為很多頁面對爬蟲具有反爬的限制,加上頭部之后可以模擬正常的瀏覽器請求,成功幾率更高。這一部分在要訪問的頁面的請求頭部分:

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

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

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

把這一部分拆解開:

requests.get(url,headers=headers):帶著相應的請求頭、以GET方式、訪問上面的URL。

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

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

查看結果

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

頁面格式修改

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

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

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

語法解釋:

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

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

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

爬取書名

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

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

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

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

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

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

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

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

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

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

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

完整代碼以及注釋

代碼

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

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

翻頁查詢所有

放到下一篇詳細進行介紹。

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

相關文章

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

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

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

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

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

    Python進行添加,讀取和刪除Word文檔屬性

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

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

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

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

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