国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用playwright爬取魔筆小說網(wǎng)站并下載輕小說資源

這篇具有很好參考價(jià)值的文章主要介紹了使用playwright爬取魔筆小說網(wǎng)站并下載輕小說資源。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、安裝python

官網(wǎng)

下載python3.9及以上版本

二、安裝playwright

playwright是微軟公司2020年初發(fā)布的新一代自動化測試工具,相較于目前最常用的Selenium,它僅用一個API即可自動執(zhí)行Chromium、Firefox、WebKit等主流瀏覽器自動化操作。

(1)安裝Playwright依賴庫

1 pip install playwright

?文章來源地址http://www.zghlxwxcb.cn/news/detail-711675.html

(2)安裝Chromium、Firefox、WebKit等瀏覽器的驅(qū)動文件(內(nèi)置瀏覽器)

1 python -m playwright install

三、分析網(wǎng)站的HTML結(jié)構(gòu)

魔筆小說網(wǎng)是一個輕小說下載網(wǎng)站,提供了mobi、epub等格式小說資源,美中不足的是,需要跳轉(zhuǎn)城通網(wǎng)盤下載,無會員情況下被限速且同一時(shí)間只允許一個下載任務(wù)。

當(dāng)使用chrome瀏覽器時(shí)點(diǎn)擊鍵盤的F12進(jìn)入開發(fā)者模式。

(一)小說目錄

使用playwright爬取魔筆小說網(wǎng)站并下載輕小說資源

HTML內(nèi)容

使用playwright爬取魔筆小說網(wǎng)站并下載輕小說資源

通過href標(biāo)簽可以獲得每本小說的詳細(xì)地址,隨后打開該地址獲取章節(jié)下載地址。

(二)章節(jié)下載目錄

使用playwright爬取魔筆小說網(wǎng)站并下載輕小說資源

HTML內(nèi)容

使用playwright爬取魔筆小說網(wǎng)站并下載輕小說資源

遍歷每本小說的地址并保存到單獨(dú)的txt文件中供后續(xù)下載。

(三)代碼

 1 import time,re
 2 
 3 from playwright.sync_api import Playwright, sync_playwright, expect
 4 
 5 def cancel_request(route,request):
 6     route.abort()
 7 def run(playwright: Playwright) -> None:
 8     browser = playwright.chromium.launch(headless=False)
 9     context = browser.new_context()
10     page = context.new_page()
11     # 不加載圖片
12     # page.route(re.compile(r"(\.png)|(\.jpg)"), cancel_request)
13     page.goto("https://mobinovels.com/")
14     # 由于魔筆小說首頁是動態(tài)加載列表,因此在此處加30s延遲,需手動滑動頁面至底部直至加載完全部內(nèi)容
15     for i in range(30):
16         time.sleep(1)
17         print(i)
18     # 定位至列表元素
19     novel_list = page.locator('[class="post-title entry-title"]')
20     # 統(tǒng)計(jì)小說數(shù)量
21     total = novel_list.count()
22     # 遍歷獲取小說詳情地址
23     for i in range(total):
24         novel = novel_list.nth(i).locator("a")
25         title = novel.inner_text()
26         title_url = novel.get_attribute("href")
27         page1 = context.new_page()
28         page1.goto(title_url,wait_until='domcontentloaded')
29         print(i+1,total,title)
30         try:
31             content_list = page1.locator("table>tbody>tr")
32             # 保存至單獨(dú)txt文件中供后續(xù)下載
33             with open('./novelurl/'+title+'.txt', 'a') as f:
34                 for j in range(content_list.count()):
35                     if content_list.nth(j).locator("td").count() > 2:
36                         content_href = content_list.nth(j).locator("td").nth(3).locator("a").get_attribute("href")
37                         f.write(title+str(j+1)+'分割'+content_href + '\n')
38         except:
39             pass
40         page1.close()
41     # 程序結(jié)束后手動關(guān)閉程序
42     time.sleep(50000)
43     page.close()
44 
45     # ---------------------
46     context.close()
47     browser.close()
48 
49 
50 with sync_playwright() as playwright:
51     run(playwright)

(四)運(yùn)行結(jié)果

使用playwright爬取魔筆小說網(wǎng)站并下載輕小說資源

使用playwright爬取魔筆小說網(wǎng)站并下載輕小說資源

四、開始下載

之所以先將下載地址保存到txt再下載而不是立即下載,是防止程序因網(wǎng)絡(luò)等原因異常崩潰后記錄進(jìn)度,下次啟動避免重復(fù)下載。

(一)獲取cookies

城通網(wǎng)盤下載較大資源時(shí)需要登陸,有的輕小說文件較大時(shí),頁面會跳轉(zhuǎn)到登陸頁面導(dǎo)致程序卡住,因此需利用cookies保存登陸狀態(tài),或增加延遲手動在頁面登陸。

chrome瀏覽器可以通過cookies editor插件獲取cookies,導(dǎo)出后即可使用。

(二)分析下載地址

下載地址有三種類型,根據(jù)判斷條件分別處理:

(1)文件的訪問密碼統(tǒng)一為6195,當(dāng)域名為?https://url74.ctfile.com/?地址后綴帶有??p=6195?時(shí),頁面自動填入訪問密碼,我們需要在腳本中判斷后綴是否為??p=6195?,如不是則拼接字符串后訪問;

(2)有后綴時(shí)無需處理;

(3)當(dāng)域名為?https://t00y.com/?時(shí)無需密碼;

 1                         if "t00y.com" in new_url:
 2                             page.goto(new_url)
 3                         elif "?p=6195" not in new_url:
 4                             page.goto(new_url+"?p=6195")
 5                             page.get_by_placeholder("文件訪問密碼").click()
 6                             page.get_by_role("button", name="解密文件").click()
 7                         else:
 8                             page.goto(new_url)
 9                             page.get_by_placeholder("文件訪問密碼").click()
10                             page.get_by_role("button", name="解密文件").click()

(三)開始下載

playWright下載資源需利用?page.expect_download?函數(shù)。

下載完整代碼如下:

 1 import time,os
 2 
 3 from playwright.sync_api import Playwright, sync_playwright, expect
 4 
 5 
 6 def run(playwright: Playwright) -> None:
 7     browser = playwright.chromium.launch(channel="chrome", headless=False) # 此處使用的是本地chrome瀏覽器
 8     context = browser.new_context()
 9     path = r'D:\PycharmProjects\wxauto\novelurl'
10     dir_list = os.listdir(path)
11     # 使用cookies
12     # cookies = []
13     # context.add_cookies(cookies)
14     page = context.new_page()
15     for i in range(len(dir_list)):
16         try:
17             novel_url = os.path.join(path, dir_list[i])
18             print(novel_url)
19             with open(novel_url) as f:
20                     for j in f.readlines():
21                         new_name,new_url = j.strip().split("分割")
22                         if "t00y.com" in new_url:
23                             page.goto(new_url)
24                         elif "?p=6195" not in new_url:
25                             page.goto(new_url+"?p=6195")
26                             page.get_by_placeholder("文件訪問密碼").click()
27                             page.get_by_role("button", name="解密文件").click()
28                         else:
29                             page.goto(new_url)
30                             page.get_by_placeholder("文件訪問密碼").click()
31                             page.get_by_role("button", name="解密文件").click()
32 
33                         with page.expect_download(timeout=100000) as download_info:
34                             page.get_by_role("button", name="立即下載").first.click()
35                             print(new_name,"開始下載")
36                         download_file = download_info.value
37                         download_file.save_as("./novel/"+dir_list[i][:-4]+"/"+download_file.suggested_filename)
38                         time.sleep(3)
39             os.remove(novel_url)
40             print(i+1,dir_list[i],"下載結(jié)束")
41         except:
42             print(novel_url,"出錯")
43     time.sleep(60)
44     page.close()
45 
46     # ---------------------
47     context.close()
48     browser.close()
49 
50 
51 with sync_playwright() as playwright:
52     run(playwright)

(四)運(yùn)行結(jié)果

使用playwright爬取魔筆小說網(wǎng)站并下載輕小說資源

?

TRANSLATE with x
English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian ?
?
TRANSLATE with
COPY THE URL BELOW
Back
EMBED THE SNIPPET BELOW IN YOUR SITE
Enable collaborative features and customize widget: Bing Webmaster Portal
Back

到了這里,關(guān)于使用playwright爬取魔筆小說網(wǎng)站并下載輕小說資源的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 爬蟲之牛刀小試(九):爬取小說

    爬蟲之牛刀小試(九):爬取小說

    今天爬取的是一本小說 代碼如下: 接著寫一個網(wǎng)頁來表示出文本內(nèi)容(此段代碼由陳同學(xué)提供,不方便展示),效果如下: 最近新開了公眾號,請大家關(guān)注一下。

    2024年01月25日
    瀏覽(26)
  • 帶自動采集小說網(wǎng)站源碼 小說聽書網(wǎng)站源碼 小說網(wǎng)站源碼 帶教程

    帶自動采集小說網(wǎng)站源碼 小說聽書網(wǎng)站源碼 小說網(wǎng)站源碼 帶教程

    PTCMS可聽書可下載的小說站源碼 帶自動采集和搭建視頻教程 必裝環(huán)境:Nginx(apache.iis也可),mysql,php5.6,memcached php5.6安裝擴(kuò)展memcache新建站點(diǎn),注意新建時(shí),PHP版本必須選擇PHP5.6 安裝教程 1.上傳網(wǎng)站文件到網(wǎng)站目錄,新建網(wǎng)站偽靜態(tài)選擇thinkphp 2.新建數(shù)據(jù)庫。導(dǎo)入數(shù)據(jù)庫文件PT

    2024年02月07日
    瀏覽(26)
  • 如何使用JS逆向爬取網(wǎng)站數(shù)據(jù)

    如何使用JS逆向爬取網(wǎng)站數(shù)據(jù)

    引言: JS逆向是指利用編程技術(shù)對網(wǎng)站上的JavaScript代碼進(jìn)行逆向分析,從而實(shí)現(xiàn)對網(wǎng)站數(shù)據(jù)的抓取和分析。這種技術(shù)在網(wǎng)絡(luò)數(shù)據(jù)采集和分析中具有重要的應(yīng)用價(jià)值,能夠幫助程序員獲取網(wǎng)站上的有用信息,并進(jìn)行進(jìn)一步的處理和分析。 基礎(chǔ)知識: JavaScript解析引擎是爬蟲JS逆

    2024年01月19日
    瀏覽(23)
  • Python爬蟲:如何使用Python爬取網(wǎng)站數(shù)據(jù)

    更新:2023-08-13 15:30 想要獲取網(wǎng)站的數(shù)據(jù)?使用Python爬蟲是一個絕佳的選擇。Python爬蟲是通過自動化程序來提取互聯(lián)網(wǎng)上的信息。本文章將會詳細(xì)介紹Python爬蟲的相關(guān)技術(shù)。 在使用Python爬蟲之前,我們需要理解網(wǎng)絡(luò)協(xié)議和請求。HTTP是網(wǎng)絡(luò)傳輸?shù)闹匾獏f(xié)議,它是在Web瀏覽器和

    2024年02月13日
    瀏覽(31)
  • python:爬取網(wǎng)絡(luò)小說,看這一篇就夠了

    python:爬取網(wǎng)絡(luò)小說,看這一篇就夠了

    說明: ? ? ? ? 本教程僅供于學(xué)習(xí)研究使用,請勿用于其他用途。 軟件安裝: 官網(wǎng)下載visual studio?Visual Studio: 面向軟件開發(fā)人員和 Teams 的 IDE 和代碼編輯器 (microsoft.com) 點(diǎn)進(jìn)網(wǎng)頁后下拉找到個人免費(fèi)版本。點(diǎn)擊下載即可。 1:找到瀏覽器下載位置,2:選擇打開下載文件位置

    2024年02月04日
    瀏覽(26)
  • Python網(wǎng)頁爬蟲爬取起點(diǎn)小說——re解析網(wǎng)頁數(shù)據(jù)

    Python網(wǎng)頁爬蟲爬取起點(diǎn)小說——re解析網(wǎng)頁數(shù)據(jù)

    ??!注意:我們獲取到的網(wǎng)頁響應(yīng)數(shù)據(jù),可能會與網(wǎng)頁源代碼中呈現(xiàn)的格式不同。因?yàn)橛行┚W(wǎng)頁文件是用JavaScript加載的,瀏覽器會自動將其解析成html文檔格式,而我們獲取到的內(nèi)容是JavaScript格式的文檔。所以獲取到響應(yīng)數(shù)據(jù)之后先要查看內(nèi)容是否與網(wǎng)頁源碼中的一致,不一

    2024年02月04日
    瀏覽(41)
  • Python爬蟲入門:使用selenium庫,webdriver庫模擬瀏覽器爬蟲,模擬用戶爬蟲,爬取網(wǎng)站內(nèi)文章數(shù)據(jù),循環(huán)爬取網(wǎng)站全部數(shù)據(jù)。

    Python爬蟲入門:使用selenium庫,webdriver庫模擬瀏覽器爬蟲,模擬用戶爬蟲,爬取網(wǎng)站內(nèi)文章數(shù)據(jù),循環(huán)爬取網(wǎng)站全部數(shù)據(jù)。

    *嚴(yán)正聲明:本文僅限于技術(shù)討論與分享,嚴(yán)禁用于非法途徑。 目錄 準(zhǔn)備工具: 思路: 具體操作: 調(diào)用需要的庫: 啟動瀏覽器驅(qū)動: 代碼主體: ?完整代碼(解析注釋): Python環(huán)境; 安裝selenium庫; Python編輯器; 待爬取的網(wǎng)站; 安裝好的瀏覽器; 與瀏覽器版本相對應(yīng)的

    2023年04月24日
    瀏覽(103)
  • 20230908_python練習(xí)_selenium模塊爬取網(wǎng)頁小說練習(xí)

    20230908_python練習(xí)_selenium模塊爬取網(wǎng)頁小說練習(xí)

    霍比特人小說爬取,使用 selenium 模塊調(diào)用谷歌瀏覽器,無界面模式爬取小說網(wǎng)站信息,將數(shù)據(jù)按照每次2000字符在mysql中保存。

    2024年02月07日
    瀏覽(29)
  • 使用PyCharm編寫Scrapy爬蟲程序,爬取古詩詞網(wǎng)站

    使用PyCharm編寫Scrapy爬蟲程序,爬取古詩詞網(wǎng)站

    本次測試案例參考廈門大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)室 鏈接: https://dblab.xmu.edu.cn/blog/3937/ 在PyCharm中新建一個名稱為“scrapyProject”的工程,如下圖所示,Python解釋器就選擇我們之前已經(jīng)安裝好的 本次測試環(huán)境為 Python3.7.6 在“scrapyProject”工程底部打開Terminal窗口(如下圖所示),在命令提示

    2024年02月11日
    瀏覽(23)
  • Python學(xué)習(xí):使用selenium爬取某個網(wǎng)站時(shí)出現(xiàn)的問題

    最近,學(xué)習(xí)Python爬蟲興奮之時(shí),突發(fā)奇想想去爬取網(wǎng)易云音樂的評論,根據(jù)所學(xué),先找到評論定位的CSS選擇器,然后什么也沒有輸出,又仔細(xì)檢查了一下沒有任何問題,后來一遍一遍查詢資料發(fā)現(xiàn),原來網(wǎng)頁中有frame或者iframe時(shí),需要在定位器的前面加這么一句: 這樣再接著

    2024年02月16日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包