当前位置:
首页 > temp > python入门教程 >
-
网不好,看个漫画加载半天?教你用Python批量下载网站所有漫画(附源码)
首先咱们用的是这些环境
Python3.6
pycharm
涉及到的知识点
requests
parsel pip install 模块名
re
os
大概流程
一、单章节爬取
- 找到受害者 https://www.kuimh.com/chapter/332265-3351141
- 向受害者发送请求
- 获取数据:获取源代码
- 解析网页源代码: 提取漫画章节名, 每一页图片所在地址
- 保存数据: 图片数据
二、整本漫画爬取
- 请求 https://www.kuimh.com/book/mh10575
- 获取数据:获取源代码
- 解析网页源代码: 获取每一话所在地址
- 循环爬取,保存数据
import os import re import parsel import requests
1.正确url地址(静态\动态)
url = "https://www.kuimh.com/book/mh10575"
获取动漫章节链接和章节名
response = requests.get(url=url)
selector = parsel.Selector(response.text)
伪类选择器nth-child(第几个标签)
::text 获取文本内容
::attr 获取标签属性值
title_list = selector.css('#detail-list-select li a:nth-child(2)::text').getall() url_list = selector.css('#detail-list-select li a:nth-child(2)::attr(href)').getall() if not os.path.exists('./妖神记/'): os.makedirs('./妖神记/')
f:可以传入参数
for title, url in zip(title_list, url_list): print(f'--------------------------正在爬取{title}-------------------------') index = 1 target_url = f"https://www.kuimh.com{url}" resp = requests.get(target_url) selector = parsel.Selector(resp.text) sub_url_list = selector.css('.comicpage div img::attr(src)').getall()[:3] sub_list = selector.css('.comicpage div img::attr(data-echo)').getall() for i in sub_list: sub_url_list.append(i)
r:防止字符串转义
title = re.sub(r'[\/:*?"<>|.]', "", title) if not os.path.exists('./妖神记/' + title): os.makedirs('./妖神记/' + title) for url_ in sub_url_list: image = requests.get(url_).content with open('./妖神记/' + title + '/'+'第'+str(index)+'页.jpg', mode='wb') as f: f.write(image) print('第', str(index), '页,爬取成功') index += 1 print(title, '爬取成功!!!')
看不懂的话,建议直接看视频教程~
作者:静默虚空
出处:https://www.cnblogs.com/hahaa/p/15181887.html
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数