Python3爬虫学习笔记2.2——爬图片-妹子图
来源:互联网 发布:mac如何下载优酷视频 编辑:程序博客网 时间:2024/06/05 06:50
有失远迎,今天尝试爬取妹子图妹子图。
我们首先确认一下自己要爬取网页图片的规律。打开首页会发现每页都有10个写真集。url为 www.meizitu.com
现在我们打开第二页看下
这里就发现了一个问题,打开第二页后 ,下面的页面显示仍然为第1页;这个时候的页面中有30个写真集,页面的url为www.meizitu.com/a/list_1_1.html。
我们在该页面中任意点开一个写真集,每个写真集里边会有数张图片,这些图片证实我们想要了。
这是我们观察一下该页面的url,为:www.meizitu.com/a/5418.html。
可以选择直接访问图片页面的url来爬取,但是我们不确定页面的数字是否连续。所以我们选择先打开写真集列表页面,在打开写真集的页面的方式来访问,并保存我们想要的图片。
def getUrl(self,target_url,start_page,page_num): all_urls=[] for i in range(start_page,page_num+1): new_urls=re.sub('/list_1_\d','/list_1_%d'%i,target_url,re.S) all_urls.append(new_urls) return all_urls
用该代码可以得到所有待爬取写真集列表的url。然后再每个写真集的列表页面中,得到每个写真集的url。即
def getLink(self,page_link): page_html=requests.get(page_link,timeout=0.5) all_pic_link=re.findall('<a target=\'_blank\' href="(.*?)">',page_html.text,re.S) return all_pic_link
在该页面可以得到所有的图片,然后将其保存即可,整理代码如下。ps:改代码有点小问题,就是在最后几页的爬取过程中,图片的正则表达式不匹配,那几页的页面源码和最近页面的不一样。改一下正则表达式就可以了。
import reimport requestsclass spider(): def getUrl(self,target_url,start_page,page_num): all_urls=[] for i in range(start_page,page_num+1): new_urls=re.sub('/list_1_\d','/list_1_%d'%i,target_url,re.S) all_urls.append(new_urls) return all_urls def getLink(self,page_link): page_html=requests.get(page_link,timeout=0.5) all_pic_link=re.findall('<a target=\'_blank\' href="(.*?)">',page_html.text,re.S) return all_pic_link def getPic(self,page_url): pic_html=requests.get(page_url,timeout=0.5) all_pic_src=re.findall('<img alt=.*?src="(.*?)" /><br />',pic_html.text,re.S) return all_pic_src #需要提前新建文件夹 def saveFile(self,pic_src,num): pic=requests.get(pic_src,timeout=0.5) f=open('pic\\'+str(num)+'.jpg','wb') f.write(pic.content) f.closeif __name__=='__main__': meizituSpider=spider() i=1 url='http://www.meizitu.com/a/list_1_1.html' all_link=meizituSpider.getUrl(url,7,89) for link in all_link: print('准备爬取:'+link) all_pic_list=meizituSpider.getLink(link) for pic_url in all_pic_list: print(pic_url) all_pic=meizituSpider.getPic(pic_url) for pic_src in all_pic: #print(pic_src) try: meizituSpider.saveFile(pic_src,i) print(i) i+=1 except: pass
下面是爬取到的图片。
老司机尽情飙车吧。
0 0
- Python3爬虫学习笔记2.2——爬图片-妹子图
- Python3爬取妹子图——爬虫&下载网络图片
- Python3 实现妹子图爬虫
- Python3 实现妹子图爬虫
- Python爬虫之——爬取妹子图片
- Python3爬虫学习笔记1.0——什么是爬虫?
- Python学习笔记56(爬虫:煎蛋网上的妹子图)
- [Python]网络爬虫学习笔记,爬取豆瓣妹子上妹子的照片
- python3 爬取妹子图。。。
- Python爬虫---------------<妹子图>图片抓取(1)
- 菜鸟爬虫-爬妹子图
- 爬虫Beatshufu爬妹子图
- Python3爬虫学习笔记0.0——综述
- Python3爬虫学习笔记1.2——模拟登录
- Python的学习笔记DAY8---爬虫练习之煎蛋网妹子图爬虫
- python3 爬虫—爬取豆瓣电影图片(一)
- Python3爬虫学习笔记2.1——爬文字-糗事百科
- Python3 爬虫实战(二)——图片爬虫
- jQ模拟打字效果插件typetype
- Android屏幕适配全攻略(最权威的官方适配指导)
- css 容易混淆属性
- 继承设计的一些小技巧
- java虚拟机——对象的布局、访问方式
- Python3爬虫学习笔记2.2——爬图片-妹子图
- php学习之数据类型
- LeetCode387. First Unique Character in a String
- 因为喜欢、所以坚持
- cocos2dx 3.12 Windows模拟器显示菜单栏
- 图之最小生成树
- View的坐标系
- 复合名是一种代码臭味
- 第二章 装配Bean之spring配置可选方案及自动化装配bean