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

python爬蟲爬取某圖書網(wǎng)頁實例講解

 更新時間:2024年08月29日 09:43:01   作者:紅米煮粥  
這篇文章主要介紹了python爬蟲爬取某圖書網(wǎng)頁實例,下面是通過requests庫來對ajax頁面進行爬取的案例,與正常頁面不同,這里我們獲取url的方式也會不同,這里我們通過爬取一個簡單的ajax小說頁面來為大家講解,需要的朋友可以參考下

下面是通過requests庫來對ajax頁面進行爬取的案例,與正常頁面不同,這里我們獲取url的方式也會不同,這里我們通過爬取一個簡單的ajax小說頁面來為大家講解。(注:結(jié)尾附贈全部代碼與詳細注釋)

導(dǎo)入相應(yīng)的庫

爬取數(shù)據(jù)必須有相應(yīng)的庫,這里我們使用爬蟲腳本中常用的幾個Python庫:os.path、fake_useragent 和 requests。
1.os.path:

  • 這個模塊主要用于處理文件和目錄的路徑。它提供了一系列的功能來進行路徑的拼接、拆分、查詢等操作,以確保路徑的跨平臺兼容性(比如Windows和Unix/Linux系統(tǒng)的路徑分隔符不同)。
  • 在爬蟲中,os.path 通常用于構(gòu)建本地文件系統(tǒng)的路徑,以便保存從網(wǎng)絡(luò)上下載的圖片、文本數(shù)據(jù)等。

2.fake_useragent:

  • 這個庫用于生成隨機的、看起來像是真實瀏覽器的User-Agent字符串。User-Agent是一個在HTTP請求中發(fā)送給服務(wù)器的頭部信息,它告訴服務(wù)器發(fā)起請求的客戶端(通常是瀏覽器)的類型、版本和操作系統(tǒng)等信息。
  • 在爬蟲中,由于許多網(wǎng)站會檢查User-Agent來識別爬蟲請求并阻止它們,因此使用fake_useragent可以幫助爬蟲繞過這種簡單的反爬蟲機制。

3.requests:

  • requests是Python中非常流行的HTTP庫,用于發(fā)送HTTP/1.1請求。它提供了一個簡單易用的API,用于處理各種HTTP請求,如GET、POST、PUT、DELETE等。
  • 在爬蟲中,requests庫是發(fā)送網(wǎng)絡(luò)請求并獲取響應(yīng)的主要工具。它支持會話(Session)對象、HTTPS請求、文件上傳、Cookie處理、重定向、連接池等功能,非常適合用于構(gòu)建復(fù)雜的爬蟲系統(tǒng)。
import os.path  
import fake_useragent  
import requests  

正確地設(shè)置代碼的基礎(chǔ)部分

這里我們生成一個隨機的User-Agent、檢查并創(chuàng)建目錄以便儲存爬取的圖片、以及打開(或創(chuàng)建)一個文本文件來保存數(shù)據(jù)。

import os.path  
import fake_useragent  
import requests  
# 判斷是否是直接運行該腳本  
if __name__ == '__main__':  
    head = {"User-Agent": fake_useragent.UserAgent().random}  
    if not os.path.exists("./biqugePic"):  
        os.mkdir("./biqugePic")  
    f = open("./biquge.txt", 'w', encoding='utf8')  

設(shè)置循環(huán)遍歷

循環(huán)遍歷URL(這里為大家提供具體url的獲取方法,并循環(huán)了1至9頁的數(shù)據(jù)為大家做案例),并發(fā)送了帶有隨機User-Agent的GET請求。這是爬蟲中常見的做法,用于從網(wǎng)站的不同頁面獲取數(shù)據(jù)。

 for i in range(1, 10):  
        url = f"https://www.bqgui.cc/json?sortid=1&page={i}"  
        resp = requests.get(url, headers=head)  

首先進入網(wǎng)頁,點擊F12打開自定義與控制工具,點擊fecth/XHR,此時顯示部分為空白。

這個時候我們滾動鼠標滾輪,就會出現(xiàn)相應(yīng)的url,這里的https://www.bqgui.cc/json?sortid=1&page=2,其中尾部2表示滾輪頁面第二頁,想要獲取1至9我們只需要進行一個簡單的循環(huán)遍歷即可。

遍歷URL

遍歷從URL獲取的JSON響應(yīng),該響應(yīng)包含多個項目。對于每個項目,您都提取了圖片URL、文章名、作者和簡介,并計劃將這些信息打印到控制臺以及下載圖片和保存文本信息到文件。

 for item in resp.json():  
	# 從每個JSON對象中提取所需的信息  
	img_url = item['url_img']  
	articlename = item['articlename']  
	author = item['author']  
	intro = item["intro"]  
	# 打印提取的信息到控制臺  
	print(img_url, author, articlename, intro)  
	# 發(fā)送另一個GET請求到圖片URL,以獲取圖片內(nèi)容  
	img_rest = requests.get(img_url, headers=head)  

保存圖片和文檔

設(shè)置代碼來保存圖片到以文章名命名的文件中,并將作者、文章名和簡介信息寫入到"./biquge.txt"文件中。

with open(f"./biqugePic/{articlename}.jpg", "wb") as fp:  
# 將圖片內(nèi)容寫入文件  
fp.write(img_rest.content)  
# 將作者、文章名和簡介信息寫入到"./biquge.txt"文件中  
f.write(author + '#' + articlename + '#' + intro + "\n")

全部代碼即詳細注釋

import os.path  
import fake_useragent  
import requests  
# 判斷是否是直接運行該腳本  
if __name__ == '__main__':  
    # 創(chuàng)建一個包含隨機User-Agent的HTTP請求頭  
    head = {"User-Agent": fake_useragent.UserAgent().random}  
    # 檢查是否存在名為"./biqugePic"的文件夾,如果不存在則創(chuàng)建它  
    if not os.path.exists("./biqugePic"):  
        os.mkdir("./biqugePic")  
    # 以寫入模式打開(或創(chuàng)建)一個名為"./biquge.txt"的文件,用于保存數(shù)據(jù)  
    f = open("./biquge.txt", 'w', encoding='utf8')  
    # 循環(huán)從第1頁到第9頁(注意,range函數(shù)是左閉右開的,所以不包括10)  
    for i in range(1, 10):  
        # 構(gòu)造請求URL,這里假設(shè)每個頁面的數(shù)據(jù)都可以通過此URL以JSON格式獲取  
        url = f"https://www.bqgui.cc/json?sortid=1&page={i}"  
        # 發(fā)送GET請求到URL,并帶上之前創(chuàng)建的請求頭  
        resp = requests.get(url, headers=head)  
        # 假設(shè)服務(wù)器返回的是JSON格式的數(shù)據(jù),我們遍歷這些數(shù)據(jù)  
        # 注意:這里有個潛在的問題,因為內(nèi)部循環(huán)的變量也使用了'i',這會覆蓋外層循環(huán)的'i'  
        # 為了避免混淆,應(yīng)該使用另一個變量名,比如'item'  
        for item in resp.json():  
            # 從每個JSON對象中提取所需的信息  
            img_url = item['url_img']  
            articlename = item['articlename']  
            author = item['author']  
            intro = item["intro"]  
            # 打印提取的信息到控制臺  
            print(img_url, author, articlename, intro)  
            # 發(fā)送另一個GET請求到圖片URL,以獲取圖片內(nèi)容  
            img_rest = requests.get(img_url, headers=head)  
            # 打開(或創(chuàng)建)一個文件,用于保存圖片,文件名基于文章名  
            with open(f"./biqugePic/{articlename}.jpg", "wb") as fp:  
                # 將圖片內(nèi)容寫入文件  
                fp.write(img_rest.content)  
            # 將作者、文章名和簡介信息寫入到"./biquge.txt"文件中  
            f.write(author + '#' + articlename + '#' + intro + "\n") 

注意:

  • 代碼假設(shè)了服務(wù)器返回的JSON結(jié)構(gòu)是固定的,并且每個對象都包含’url_img’, ‘articlename’, ‘author’, 和 'intro’鍵。
  • 在實際應(yīng)用中,網(wǎng)絡(luò)請求可能會失敗(如404、500等HTTP錯誤),應(yīng)該添加錯誤處理邏輯。
  • 由于網(wǎng)絡(luò)延遲和帶寬限制,大量請求可能會導(dǎo)致性能問題或被服務(wù)器封鎖。
  • 使用fake_useragent生成隨機User-Agent可以幫助繞過一些簡單的反爬蟲機制,但不一定對所有網(wǎng)站都有效。

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

相關(guān)文章

  • 使用Python處理Excel文件的全面指南(從讀取到數(shù)據(jù)清洗)

    使用Python處理Excel文件的全面指南(從讀取到數(shù)據(jù)清洗)

    隨著數(shù)據(jù)分析和自動化任務(wù)的日益普及,Excel文件作為一種廣泛使用的電子表格格式,然而,手動處理大規(guī)模Excel數(shù)據(jù)往往耗時且易出錯,借助編程語言如Python進行自動化處理已成為高效解決方案,本文將為您提供一個全面的指南,涵蓋使用Python處理Excel文件的各個方面
    2025-06-06
  • Python設(shè)計模式結(jié)構(gòu)型組合模式

    Python設(shè)計模式結(jié)構(gòu)型組合模式

    這篇文章主要介紹了Python設(shè)計模式結(jié)構(gòu)型組合模式,組合模式即Composite?Pattern,將對象組合成成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu),組合模式使得用戶對單個對象和組合對象的使用具有一致性,下文具有一定的參考價值,需要的小伙伴可以參考一下
    2022-02-02
  • 使用Python進行數(shù)據(jù)可視化實現(xiàn)引人注目的視覺效果

    使用Python進行數(shù)據(jù)可視化實現(xiàn)引人注目的視覺效果

    這篇文章主要介紹了使用Python進行數(shù)據(jù)可視化實現(xiàn)引人注目的視覺效果,您將了解基本的數(shù)據(jù)可視化概念,以及如何創(chuàng)建各種引人注目的圖表和圖形,從而更好地理解和呈現(xiàn)數(shù)據(jù)
    2023-04-04
  • 淺析PandasAI連接LLM對MySQL數(shù)據(jù)庫進行數(shù)據(jù)分析

    淺析PandasAI連接LLM對MySQL數(shù)據(jù)庫進行數(shù)據(jù)分析

    這篇文章主要為大家詳細介紹了PandasAI如何連接LLM對MySQL數(shù)據(jù)庫進行數(shù)據(jù)分析,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-08-08
  • 利用django model save方法對未更改的字段依然進行了保存

    利用django model save方法對未更改的字段依然進行了保存

    這篇文章主要介紹了利用django model save方法對未更改的字段依然進行了保存,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python 修改本地網(wǎng)絡(luò)配置的方法

    python 修改本地網(wǎng)絡(luò)配置的方法

    今天小編就為大家分享一篇python 修改本地網(wǎng)絡(luò)配置的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python字典的基礎(chǔ)操作

    Python字典的基礎(chǔ)操作

    這篇文章主要介紹了Python字典的基礎(chǔ)操作,Python中的字典數(shù)據(jù)類型和現(xiàn)實中的字典很像,它是以鍵值對(鍵和值的組合)的方式把數(shù)據(jù)組織到一起,可以通過鍵找到與之對應(yīng)的值并進行操作,下面來看文章金額提內(nèi)容吧,需要的朋友可以參考一下
    2021-11-11
  • 為什么稱python為膠水語言

    為什么稱python為膠水語言

    在本篇文章里小編給大家分享的是關(guān)于python為何稱為膠水語言的相關(guān)知識點,需要的朋友們可以學(xué)習(xí)參考下。
    2020-06-06
  • python與pycharm有何區(qū)別

    python與pycharm有何區(qū)別

    在本篇文章里小編給大家整理了關(guān)于pycharm與python的區(qū)別相關(guān)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2020-07-07
  • Python干貨實戰(zhàn)之八音符醬小游戲全過程詳解

    Python干貨實戰(zhàn)之八音符醬小游戲全過程詳解

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠遠不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用Python實現(xiàn)一個八音符醬小游戲,大家可以在過程中查缺補漏,提升水平
    2021-10-10

最新評論

新沂市| 左权县| 桓仁| 鹰潭市| 盐山县| 华蓥市| 永福县| 剑川县| 睢宁县| 定南县| 宁都县| 登封市| 夹江县| 汾阳市| 修水县| 明溪县| 图木舒克市| 西乌珠穆沁旗| 新闻| 寿阳县| 英吉沙县| 新和县| 西峡县| 麻城市| 龙州县| 德州市| 玉田县| 万盛区| 上饶县| 忻城县| 广昌县| 洪洞县| 裕民县| 疏勒县| 赤峰市| 慈溪市| 台南县| 永平县| 工布江达县| 隆化县| 葫芦岛市|