这一篇巩固前几篇文章的学到的技术,利用urllib库爬取美女图片,其中采用了多线程
,文件读写
,目录匹配
,正则表达式解析
,字符串拼接等知识
,这些都是前文提到的,综合运用一下,写个爬虫
示例爬取美女图片。
先定义几个匹配规则和User_Agent
1 | USER_AGENT = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0' |
读者可以根据不同网站的代码去修改这些规则,达到匹配一些网站的目的。
1定义抓图类
1 | class GetMMPic(object): |
初始化构造函数中设置了路径和网络地址,以及请求的user_agent。
2封装信息请求和读取函数
1 | def requestData(self,url, user_agent): |
这个函数功能主要是请求url网络地址,加上user_agent后,获取数据,并且采用utf-8
编码方式解析。
3封装创建目录函数
1 | def makedir(self,dirname): |
该函数主要是完成在GMMPic类配置的路径下(默认是./),生成子目录,子目录的名字由
参数决定。简单地说就是要在当前目录下生成文件名对应的文件夹,保存不同的图片。
4 获取当前页面信息保存图片
1 | def getPageData(self,httpstr): |
getPageData()函数根据PATTERN2匹配页面符合条件的图片资源,根据PATTERN5取出图片名字(不含类型),
通过for循环一个一个保存。
运行程序,提示输入网址,
这里输入男人装某篇文章的地址,效果如下:
5 采用多线程提高并发能力
编写线程回调函数 workthread, 每个线程去爬不同的文章
1 | def workthread(item, user_agent,path): |
开辟多个线程,去爬首页各个分栏,实现自动化抓图
1 | def getDetailList(self,content): |
用修改后的多线程程序爬取宅福利首页各模块图片
效果如下:
源码下载地址:
https://github.com/secondtonone1/python-
谢谢关注我的公众号: