爬取 http://www.4399dmw.com

import requests
from lxml import html
import os

etree = html.etree
headers = {
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}

# 修改book选取小说
book = '/mh/wmdx'
# 修改baseDir改变根文件夹
baseDir = '/home/opengwe/Desktop/Books'
domain = 'http://www.4399dmw.com'

def getText(url):
    res = requests.get(url, headers)
    res.encoding = res.apparent_encoding
    return res.text

def getElements(text, xpath):
    html = etree.HTML(text)
    return html.xpath(xpath)

def mkDir(folder):
    if not os.path.exists(folder):
        os.makedirs(folder)

def saveImage(url, path):
    res = requests.get(url)
    with open(path, 'wb') as f:
        f.write(res.content)

def savePage(novelName, chapter, images):
    folder = '{}/{}/{}/'.format(baseDir, novelName, chapter)
    mkDir(folder)
    for img in images:
        name = img.split('/')[-1]
        saveImage(img, folder+name)

if __name__ == '__main__':
    novelText = getText(domain + book)
    novelName = getElements(novelText, '//div[@class="curtain__info-tit"]/text()')[0]
    chapters = getElements(novelText, '//div[@class="listing__free-content"][1]/div[@class="listing__free-box"][1]//a')
    for chapr in chapters:
        chapterName = chapr.xpath('text()')[0]
        chapterText = getText(domain + chapr.xpath('@href')[0])
        images = getElements(chapterText, '//div[@class="m-img m-img-all"]//img/@data-src')
        savePage(novelName, chapterName, images)
        print('已完成\t%s\t%s' % (novelName, chapterName))
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容