Python爬取鬥破蒼穹漫畫

用Python爬取鬥破蒼穹漫畫。剛好我自己也練練手,
1 分析漫畫網站,http://www.manhuatai.com/
2 分析網頁發現,圖片的URL很有規則
3 https://mhpic.jumanhua.com/comic/D%2F鬥破蒼穹拆分版%2F689話V%2F1.jpg-mht.middle
【上面鏈接後面的2F689代表698話】【上面鏈接後面的2F1代表每一話的第幾章圖片】
4 接下來就簡單了,用for循環可以獲取到圖片並保存,

但是有個問題,我們不知道每一話的標題
比如 第689話 戰幻身(中)

好在所有的章節信息都在http://www.manhuatai.com/doupocangqiong/這個鏈接裏面,用正則把他們都提取出來。

先看下圖片

貼上全部代碼,

import requests
import re
import os

def baocun_img(zidian,book_name):
        n = 0
        for i, k in zidian.items():
            path = r"C:\Users\MI\Desktop\python\鬥破蒼穹\{}".format(book_name[n])
            os.makedirs(path)

            for pn_pn in range(1, int(k)+1):
                url = 'https://mhpic.cnmanhua.com/comic/D%2F%E6%96%97%E7%A0%B4%E8%8B%8D%E7%A9%B9%E6%8B%86%E5%88%86%E7%89%88%2F{}%E8%AF%9D%2F{}.jpg-mht.middle'.format(i,pn_pn)
                re = requests.get(url)
                with open(path+'\{}{}.jpg'.format(book_name[n], pn_pn),'wb') as f:
                    f.write(re.content)
                    f.close()
            print(book_name[n],'已經完成')
            n += 1

def book_url():
    url = 'http://www.manhuatai.com/doupocangqiong/'

    res = requests.get(url)
    res.encoding = 'utf-8'
    book_nam = re.findall('title="第\d+話\s\S+\(\S\)', str(res.text))#得到每一話的名字
    book_ = re.findall('第\d+話\s\S+\(\S\)\(\d+P\)', str(res.text))
    book_p =re.findall('\d+P', str(book_))
    book_pn = re.findall('\d+', str(book_p))

    book_name1 = re.sub(r'title="|\s|\(|\)', '', str(book_nam))
    book_name = re.findall(r"'(.+?)'",book_name1)#將字符串轉化爲list

    book_i = re.findall(r"\d+話", book_name1)
    book_id =re.findall(r'\d+', str(book_i))

    zidian = dict(zip(book_id,book_pn))

    baocun_img(zidian,book_name)


book_url()


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章