这一篇巩固前几篇文章的学到的技术,利用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-
谢谢关注我的公众号: