用爬虫爬漫画

该博客讲述了如何利用Python的requests、lxml、pyquery和selenium库来爬取网页漫画资源。首先设置请求头,然后通过Chrome浏览器模拟点击加载更多章节,获取章节链接和名称。遍历章节链接,下载每章的图片,保存到指定文件夹中。如果图片已经存在则跳过,否则下载并保存。
摘要由CSDN通过智能技术生成

用爬虫下载漫画

import requests
from lxml import etree
from selenium import webdriver
from pyquery import PyQuery as pq
import time,os
daihao=9845
name='全职法师'
head={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36'}
browser  = webdriver.Chrome()
browser.get(f'http://www.qiman6.com/{daihao}/')
browser.find_element_by_xpath('//*[@id="chapterlistload"]/div[2]/span').click()
time.sleep(1)
# browser.find_element_by_xpath('//*[@id="chapterList"]/div[2]/a').click()
time.sleep(1)
_html=browser.page_source
html=etree.HTML(str(pq(_html)))
links=html.xpath('//*[@id="chapter-list1"]/a/@href')
text=html.xpath('//*[@id="chapter-list1"]//a/text()')
print(text)
print(len(text))
print(links)

def returnfiles():
    for root, dirs, files in os.walk(f'D:/1我的文件夹/python___study/python/爬虫/爬漫画/{name}'):
        return files
print(returnfiles())
for index,i in enumerate(links):
    if f'{text[index]}_{0}.jpg' in returnfiles() :
        print(f'本章节  {text[index]}  已下载 pass')
        continue
    try:
        browser.get(f'http://www.qiman6.com{i}')
        time.sleep(2)
        src=browser.find_elements_by_xpath('//*[@id="mainView"]/ul//img')
        new_links=[x.get_attribute('data-src') for x in src]
        print(f'正在下载{text[index]}{len(new_links)}幅')
        for new_index,link in enumerate(new_links):
            try:
                time.sleep(0.5)
                with open(f'{name}/{text[index]}_{new_index}.jpg','wb+') as file:
                    print(f'已下载{text[index]}_{new_index}.jpg  {link}')
                    date=requests.get(link).content
                    file.write(requests.get(link).content)
            except:
                pass
    except:
        pass

最后运行的结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值