Python爬虫实战,requests+tqdm模块,爬取漫画数据(附源码)
前言
今天给大家介绍的是Python爬取漫画数据,在这里给需要的小伙伴们代码,并且给出一点小心得。
首先是爬取之前应该尽可能伪装成浏览器而不被识别出来是爬虫,基本的是加请求头,但是这样的纯文本数据爬取的人会很多,所以我们需要考虑更换代理IP和随机更换请求头的方式来对漫画数据进行爬取。
在每次进行爬虫代码的编写之前,我们的第一步也是最重要的一步就是分析我们的网页。
通过分析我们发现在爬取过程中速度比较慢,所以我们还可以通过禁用谷歌浏览器图片、JavaScript等方式提升爬虫爬取速度。
开发工具
Python版本: 3.6
相关模块:
requests模块
re模块
time模块
bs4模块
tqdm模块
contextlib模块
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
文中完整代码及文件,评论留言获取
思路分析
浏览器中打开我们要爬取的页面
按F12进入开发者工具,查看我们想要的漫画数据在哪里
这里我们需要页面数据就可以了
添加代理
漫画下载代码实现
# 下载漫画
for i, url in enumerate(tqdm(chapter_urls)):print(i,url)download_header = {'Referer':url,'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36'}name = chapter_names[i]# 去掉.while '.' in name:name = name.replace('.', '')chapter_save_dir = os.path.join(save_dir, name)if name not in os.listdir(save_dir):os.mkdir(chapter_save_dir)r = requests.get(url=url)html = BeautifulSoup(r.text, 'lxml')script_info = html.scriptpics = re.findall('\d{13,14}', str(script_info))for j, pic in enumerate(pics):if len(pic) == 13:pics[j] = pic + '0'pics = sorted(pics, key=lambda x: int(x))chapterpic_hou = re.findall('\|(\d{5})\|', str(script_info))[0]chapterpic_qian = re.findall('\|(\d{4})\|', str(script_info))[0]for idx, pic in enumerate(pics):if pic[-1] == '0':url = 'https://images.dmzj.com/img/chapterpic/' + chapterpic_qian + '/' + chapterpic_hou + '/' + pic[:-1] + '.jpg'else:url = 'https://images.dmzj.com/img/chapterpic/' + chapterpic_qian + '/' + chapterpic_hou + '/' + pic + '.jpg'pic_name = '%03d.jpg' % (idx + 1)pic_save_path = os.path.join(chapter_save_dir, pic_name)print(url)response = requests.get(url,headers=download_header)# with closing(requests.get(url, headers=download_header, stream=True)) as response:# chunk_size = 1024# content_size = int(response.headers['content-length'])print(response)if response.status_code == 200:with open(pic_save_path, "wb") as file:# for data in response.iter_content(chunk_size=chunk_size):file.write(response.content)else:print('链接异常')time.sleep(2)
数据保存
结果展示
最后
为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。
里面有适合小白新手的实战教程给到大家~
快来和小鱼一起成长进步吧!
① 100+多本Python PDF(主流和经典的书籍应该都有了)
② Python标准库(最全中文版)
③ 爬虫项目源码(四五十个有趣且经典的练手项目及源码)
④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
Python爬虫实战,requests+tqdm模块,爬取漫画数据(附源码)相关推荐
- Python爬虫实战,完整的思路和步骤(附源码)
前言 小的时候心中总有十万个为什么类似的问题,今天带大家爬取一个问答类的网站. 本堂课使用正则表达式对文本类的数据进行提取,正则表达式是数据提取的通用方法. 环境介绍: python 3.6 pych ...
- python爬虫实战——自动下载百度图片(文末附源码)
用Python制作一个下载图片神器 前言 这个想法是怎么来的? 很简单,就是不想一张一张的下载图片,嫌太慢. 在很久很久以前,我比较喜欢收集各种动漫的壁纸,作为一个漫迷,自然是能收集多少就收集多少.小 ...
- Python 爬虫实战,模拟登陆爬取数据
Python 爬虫实战,模拟登陆爬取数据 从0记录爬取某网站上的资源连接: 模拟登陆 爬取数据 保存到本地 结果演示: 源网站展示: 爬到的本地文件展示: 环境准备: python环境安装 略 安装r ...
- Python爬虫实战系列(一)-request爬取网站资源
Python爬虫实战系列(一)-request爬取网站资源 python爬虫实战系列第一期 文章目录 Python爬虫实战系列(一)-request爬取网站资源 前言 一.request库是什么? 二 ...
- python爬虫实战(一)--爬取知乎话题图片
原文链接python爬虫实战(一)–爬取知乎话题图片 前言 在学习了python基础之后,该尝试用python做一些有趣的事情了–爬虫. 知识准备: 1.python基础知识 2.urllib库使用 ...
- bilibili助手C2C服务器,Bilibili (B站)200万用户数据爬取与分析(附源码)
原标题:Bilibili (B站)200万用户数据爬取与分析(附源码) 数据挖掘入门与实战 公众号: datadw 该爬虫仅供学习使用 B站用户爬虫 B站视频爬虫 B站弹幕下载器 关注并回复公众号da ...
- python爬虫实战之百度新闻爬取
百度新闻信息爬取 目录 百度新闻信息爬取 序言 获取在百度新闻中搜索"阿里巴巴"的网页源代码 编写正则表达式提取新闻信息 数据清洗并打印输出 实战完整代码 序言 通过对百度新闻标 ...
- 【Python爬虫实战】使用Selenium爬取QQ音乐歌曲及评论信息
本文对使用到的技术仅做简单的介绍,若想了解更多,请前往相应的官网网站进行学习. 本文适合对爬虫相关知识接触不多的新手,主要是普及Selenium如何做爬虫,大佬请跳过. 1.Selenium简单介绍 ...
- 利用python爬虫(案例6+part14)--如何爬取科研数据
学习笔记 文章目录 Ajax动态加载网站数据抓取 动态加载的类型 那么该如何抓取数据? 如何得到JSON文件的地址? 观察JSON文件URL地址的查询参数 JSON格式数据转换成python字典 如何 ...
- 爬虫实战——绝对通俗易懂,爬取房产数据
爬取房产数据 爬虫介绍 实战目标 1.获取url 2.利用BeautifulSoup获取html的索引 3.查找所需数据索引 4.正则表达式获取所需要的信息 完整代码 爬虫介绍 简单介绍一下爬虫,百度 ...
最新文章
- Mysql视图权限设置的踩坑经历
- Spring源码学习笔记1
- GridView导出到Excel和开源图表工具
- hdu 2098 分拆素数和(一个偶数拆分成两个不同素数和 拆法数量)
- iOS开发学无止境 - 这样好用的ReactiveCocoa,根本停不下来
- Windows和VMware虚拟机相互间无法复制的解决方案
- Bailian2810 完美立方【暴力】(POJ NOI0201-1812)
- HTTP 长连接 使用场景
- 用Excel公式,批量生成工作时间段时间点(打酱油专用)
- 计算机病毒是指源程序还是特殊小程序,2015年9月计算机一级考试Msoffice上机模拟题(五)...
- 极简桌面 android 2.3,低端 Android 备机的轻量级启动器:极简光速桌面
- 【论文】Deep Pyramidal Residual Networks(译)
- web前端CSS---关于text-align设置为justify的相关内容
- Win7 如何修改hosts文件
- python最难的地方_全国 41611 个景点,程序员用 Python 告诉你哪些地方最值得一游!...
- 100部好看的校园喜剧片(可练习英文)+美国校园青春励志电影+25部口语练习电影+20部最浪漫电影
- 复利计算机软件,复利计算器5.0加强版
- Android APP专项电耗监控工具使用说明
- buuctf ciscn_2019_sw_5
- 解决WES 7 中Composite Bus找不到驱动的bug
热门文章
- 2. Packet crafting tools (封包工具 6个)
- 计算机各外设的作用,外设在计算机中的作用及传输方式.doc
- STM32F103C8T6寄存器简单应用(流水灯)
- python温度转换_python第一课:温度转换
- 最强大的四款windows办公软件,建议低调收藏!
- 打开 android studio 时遇到does not point to a valid
- 原生开发什么意思_APP原生开发和混合开发的区别你了解多少
- 一个简单的C语言计算器(当作复习C语言基础的一个小程序)
- c语言十进制展开式形式,十六进制与运算 十六进制与十进制相互转化的公式
- 2022-2028全球高纯硅溶胶行业调研及趋势分析报告