日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

爬取斗破苍穹

發布時間:2023/12/14 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬取斗破苍穹 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 前言
  • 一、爬取步驟
    • 1.獲取每一章的網址
    • 2.爬取章節的題目和內容
    • 3.將每一章節保存為txt格式并存入對應文件夾
  • 二、成果展示
  • 三、源代碼
  • 總結

前言

最近在看python爬蟲開發從入門到實戰 微課版這本書,其中第四章后面的動手實踐是在網上尋找一個小說網站,下載感興趣的小說。于是作為一個看了十幾遍斗破蒼穹的我,果斷選擇爬取斗破蒼穹。

一、爬取步驟

1.獲取每一章的網址

通過查看源代碼或者利用開發者人員工具找到所有章節的鏈接附近的特征式子,來進行正則表達式匹配。

2.爬取章節的題目和內容

查看頁面源代碼爬取標題,其中…只出現了一次,可以用來作為爬取標題。

查看網頁源代碼來爬取內容,以

為標志爬取。 因為文章內容是在

里面的,所以可以用replace來替換,以求得到好看的形式。

3.將每一章節保存為txt格式并存入對應文件夾

利用如下代碼來判斷文件夾是否存在。

os.makedirs('斗破蒼穹', exist_ok=True)

再構造文件路徑。

os.path.join('斗破蒼穹', chapter + '.txt')

寫文件就不加贅述了。

二、成果展示


三、源代碼

import os import requests#獲取每一章的網址 def get_toc(html):toc_url_list = []toc_block = re.findall('<div class="catalog">(.*?)</div>', html, re.S)[0]toc_url = re.findall('href="(.*?)"', toc_block, re.S)start_url = 'https://read.aixdzs.com/38/38804/'for url in toc_url:toc_url_list.append(start_url + url)return toc_url_list#獲取每一章的標題和內容并且整理格式 def get_article(html):chapter_name = re.search('<title>(.*?)</title>', html, re.S).group(1)if chapter_name:chapter_name = chapter_name.replace('斗破蒼穹_', '')chapter_name = chapter_name.replace(' -愛下電子書', '')text_block = re.search('<div class="content">(.*?)</div>', html, re.S).group(1)text_block = text_block.replace('</p><p>', '\n')text_block = text_block.replace('<p>?', '')text_block = text_block.replace('</p>', '\n')text_block = text_block.replace('武林中文網.,最快更新斗破蒼穹最新章節!', '')return chapter_name, text_block#將每一章節保存為txt格式并存入對應文件夾 def save(chapter, article):os.makedirs('斗破蒼穹', exist_ok=True)with open(os.path.join('斗破蒼穹', chapter + '.txt'), 'w', encoding='UTF-8') as f:f.write(article)html_all = requests.get('https://read.aixdzs.com/38/38804/').content.decode('UTF-8') list_1 = get_toc(html_all) for i in list_1:html_each = requests.get(i).content.decode('UTF-8')chapter1, article1 = get_article(html_each)save(chapter1, article1)

總結

本次源代碼的核心框架來自我最近看的一本名為python爬蟲開發從入門到實戰 微課版的書,不過因為爬的網站不同,所以正則表達式的內容略有修改。后因為本人技術水平低,沒有用多線程爬蟲,導致爬200多章就需要15分鐘,另外一個問題就是爬到了249章后因為有一些作者的拉月票章節導致后續爬蟲無法繼續進行,以后寫爬蟲一定要注意對特殊情況的處理。

總結

以上是生活随笔為你收集整理的爬取斗破苍穹的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。