Cosplay美图爬取
python爬虫简单爬取
最近学习了爬虫,朋友说想看看关于cos的美图,好巧不巧找到了一个好的网站,废话不多说,下面就帮朋友拿图片。
基于基础爬虫
目标网站http://www.cosplay8.com/pic/chinacos/
首先要知道爬虫的步骤
1.请求
2.解析
3.保存
- 基本思路
首先请求
import requests
import reheader = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 ''Safari/537.36 Edg/110.0.1587.41 '
}def html_all_page(url):html = requests.get(url, headers=header)html.encoding = 'utf-8'data = re.findall('<li><a href="(.*?)">', html.text) # 找出网页所有链接for i in range(1, 2): # 网页翻页url = f'http://www.cosplay8.com/pic/chinacos/list_22_{i}.html'html_all_page(url)
这里注意网页的第一页链接为http://www.cosplay8.com/pic/chinacos/
第二页链接为 http://www.cosplay8.com/pic/chinacos/list_22_2.html
但 http://www.cosplay8.com/pic/chinacos/list_22_1.html 这样写也可以到第一页,而有些网站不行
进入网页F12发现,每个链接只有后缀,所以我们要加上前缀
import osfor url in data:url_data = 'http://www.cosplay8.com' + url # 合并链接url2 = requests.get(url_data, headers=header) # 合并后的链接,再次请求每个链接url2.encoding = 'utf-8'# print(url2.text)url_page = re.findall('var totalpage = (.*?);', url2.text) # 获得图片的页数img_name = re.findall('<title>(.*?)-Cosplay中国</title>', url2.text) # 获得图片的名字for img_name in img_name: # 创建图片对应的文件夹if not os.path.exists('cosplay8\\' + img_name):os.mkdir('cosplay8\\' + img_name)print(img_name)# 这里和的后缀和上面的不一样,第一页不是为1for i in range(int(url_page[0])): # 生成图片每一页链接page = url_data.split('.html')[0] + f'_{i + 1}.html'.replace('_1.', '.') print(page)img_save(img_name, page)
结果如下,24页对上了
刚好24页
- 然后就可以解析图片保存了
def img_save(img_name, page):img_get_all = requests.get(page, headers=header) # 请求每一个图片链接img_get_all.encoding = 'utf-8'img = re.findall('把href里的(.*?)链接改为', img_get_all.text) # 获得图片for img in img:img = 'http://www.cosplay8.com' + img # 合并图片链接img_data_name = img.split('/')[-1] # 保存图片的后缀名img_data = requests.get(img).content # 获得图片数据with open('cosplay8\\' + img_name + '/' + img_data_name, 'wb')as f: # 保存f.write(img_data)print(img, '完成')f.close()
最后结果
总结
1.爬虫的思路要从小到大,从少到多。
2.解析数据没有数据时到请求到的数据里解析,而不是网页上的数据
3.保存数据图片用的后缀名不能一样,不然会一直覆盖保存
仅供学习参考
如有不足,请多指教
完整代码
import requests
import re
import osheader = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 ''Safari/537.36 Edg/110.0.1587.41 '
}def html_all_page(url):html = requests.get(url, headers=header)html.encoding = 'utf-8'data = re.findall('<li><a href="(.*?)">', html.text) # 找出网页所有链接for url in data:url_data = 'http://www.cosplay8.com' + url # 合并链接url2 = requests.get(url_data, headers=header) # 合并后的链接,再次请求每个链接url2.encoding = 'utf-8'# print(url2.text)url_page = re.findall('var totalpage = (.*?);', url2.text) # 获得图片的页数img_name = re.findall('<title>(.*?)-Cosplay中国</title>', url2.text) # 获得图片的名字for img_name in img_name:if not os.path.exists('cosplay8\\' + img_name):os.mkdir('cosplay8\\' + img_name)print(img_name)for i in range(int(url_page[0])):page = url_data.split('.html')[0] + f'_{i + 1}.html'.replace('_1.', '.')print(page)img_save(img_name, page)def img_save(img_name, page):img_get_all = requests.get(page, headers=header) # 请求每一个图片链接img_get_all.encoding = 'utf-8'img = re.findall('把href里的(.*?)链接改为', img_get_all.text) # 获得图片for img in img:img = 'http://www.cosplay8.com' + img # 合并图片链接img_data_name = img.split('/')[-1] # 保存图片的后缀名img_data = requests.get(img).content # 获得图片数据with open('cosplay8\\' + img_name + '/' + img_data_name, 'wb')as f: # 保存f.write(img_data)print(img, '完成')f.close()# 'http://www.cosplay8.com//uploads/allimg/230106/112879-230106114420-50.jpg'for i in range(1, 2):url = f'http://www.cosplay8.com/pic/chinacos/list_22_{i}.html'html_all_page(url)
Cosplay美图爬取相关推荐
- 最新的今日头条美图爬取(这真是一篇很烂的博客)
接下来我们就介绍一下对今日头条的爬取: 对AJAX的爬取我也不是太熟,但是我想了以下这应该是最新的了,我也在网上搜索到不少今日头条的爬去,但是跟新过后就很难找到能顺利爬取美图的博客了,所以我把我的发现 ...
- 【python】数据分析绘制疫情图(爬取数据+保存Excel+echart绘制地图)
数据分析师工作中常规流程一般是:数据获取.数据处理.数据分析展示等. 本篇通过国内疫情数据实现数据从爬取到展示的过程. 介绍 py版本:python 3.8 目标绘制全国疫情图. 思路 通过以下三个方 ...
- Selenium实例2-截图爬取漫画
整体思路分三步: 模拟浏览器–>截取浏览器当前屏幕–>保存漫画截图 目标网址 http://www.1kkk.com/ch1000-514226/ (1)获取浏览器(模拟浏览器) def ...
- python bing 风景图爬取
说明:个人因项目需要风景图数据集而写,仅供参考. 配置:ubuntu20.firefox.pycharm.requests.BeautifulSoup 步骤: 1.bing搜索"风景图&qu ...
- Scrapy爬取整个美女网爬下来,要多少有多少
都2021年了还没爬过大家喜欢的美女图片,上先爬取的成果. 简介 基于Scrapy框架的 美女网爬取 爬虫入口地址:http://www.meinv.hk/?cat=2 如果你的爬虫运行正常却没有数据 ...
- 100行代码教你爬取斗图网(Python多线程队列)
100行代码教你爬取斗图网(Python多线程队列) 前言 根据之前写的两篇文章,想必大家对多线程和队列有了一个初步的了解,今天这篇文章就来实战一下,用多线程 + 队列 爬取斗图网的全网图片. 你还在 ...
- 养眼神器,爬取美女网站个人的写真套图
很久之前写的爬虫,一直没有放出来,这次放出来,单线程爬取,又有延时,所以有点慢.不过这也不耽误爬取了一个人的2万多张写真套图,因为这个人的很好看,哈哈哈...不过后来又全都删了,因为又发现了更好的网站 ...
- 元旦假期,去哪里旅游好呢?Python爬取元旦旅游最全攻略!
2020还有最后几天就就结束了,您考虑好2021的第一天去哪里旅游了吗,不如来看看使用Python爬取最全攻略!受益的朋友给个三连. 转发请求声明. 一.实现思路 首先我们爬取的网站是一个穷游网站: ...
- selenium爬取Ajax加载的网页(以微博为例)
Tip:我写了一篇直接构造请求获取微博数据的文章,不使用selenium,直接访问url获取到json数据,然后解析即可得到想要的数据的文章,请参考微博博主动态及相册的请求构造规律 ========= ...
最新文章
- c和python的区别动图_C语言与Python 对程序员的差别到底在哪?
- JVM 参数使用总结
- luoguP5035金坷垃
- C++函数编译原理和成员函数的实现
- poj 2983 Is the Information Reliable?
- (六)洞悉linux下的Netfilteriptables:如何理解连接跟踪机制?(2)
- PCA降维算法的原理及应用
- proof-carrying data from accumulation schemes学习笔记
- 如何把阿拉伯数字转换为中文大写?
- 关于整合ssh的问题,新人求关照
- 【iOS】关于keyWindow的获取
- 一张显卡卖5-6万?Tesla计算卡你凭什么这么贵!
- 梦幻手游服务器维护摆摊公示时间,梦幻西游手游摆摊攻略 卖家关注公示期最重要...
- 人工智能安全标准化白皮书(2019版)笔记
- 英特尔 SST 技术
- window系统下nodejs安装及环境配置
- 不容错过的华为5G十二大DEMO
- 基于SpringBoot框架的管理系统【完整项目源码】
- 《UDS/OBD诊断需求编辑工具》总目录
- 查询同学选修mysql课程的成绩_mysql-练习题 - osc_wy5qpqnh的个人空间 - OSCHINA - 中文开源技术交流社区...
热门文章
- 上海发文支持NFT 文交所入局:数字藏品趋势已到!
- 阿里京东创业者交锋,赋能会是便利店竞争下一程吗?
- 微信小程序实现上传视屏并编辑
- Java学习(Day 9)
- 三星手机又陷“冒烟门”,航班起飞后冒烟;阅文集团IPO融资规模最多达11亿美元丨价值早报
- “别人家的公司”!刘强东要给“兄弟们”花60亿建4000套公寓,拎包入住!周边二手房价6万.........
- win10家庭中文版 安装 Docker Desktop
- 头歌实验 HDFS的基本操作和Java API 操作
- pfSense安装视频教程
- 大数据面试重点之kafka(六)