博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python爬虫实战之抓取淘宝MM照片
阅读量:5251 次
发布时间:2019-06-14

本文共 3770 字,大约阅读时间需要 12 分钟。

本篇目标

1.抓取淘宝MM的姓名,头像,年龄

2.抓取每一个MM的资料简介以及写真图片

3.把每一个MM的写真图片按照文件夹保存到本地

4.熟悉文件保存的过程

1.URL的格式

在这里我们用到的URL是 http://mm.taobao.com/json/request_top_list.htm?page=1,问号前面是基地址,后面的参数page是代表第几页,可以随意更换地址。点击开之后,会发现有一些淘宝MM的简介,并附有超链接链接到个人详情页面。

我们需要抓取本页面的头像地址,MM姓名,MM年龄,MM居住地,以及MM的个人详情页面地址。

2.抓取简要信息

相信大家经过上几次的实战,对抓取和提取页面的地址已经非常熟悉了,这里没有什么难度了,我们首先抓取本页面的MM详情页面地址,姓名,年龄等等的信息打印出来,直接贴代码如下

1 ''' 2 在学习过程中有什么不懂得可以加我的 3 python学习交流扣扣qun,934109170 4 群里有不错的学习教程、开发工具与电子书籍。 5 与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容。 6 '''  7 __author__ = 'CQC' 8 # -*- coding:utf-8 -*- 9  10 import urllib11 import urllib212 import re13  14 class Spider:15  16     def __init__(self):17         self.siteURL = 'http://mm.taobao.com/json/request_top_list.htm'18  19     def getPage(self,pageIndex):20         url = self.siteURL + "?page=" + str(pageIndex)21         print url22         request = urllib2.Request(url)23         response = urllib2.urlopen(request)24         return response.read().decode('gbk')25  26     def getContents(self,pageIndex):27         page = self.getPage(pageIndex)28         pattern = re.compile('

运行结果如下

 

 2.文件写入简介

在这里,我们有写入图片和写入文本两种方式

1)写入图片

1  2 #传入图片地址,文件名,保存单张图片3 def saveImg(self,imageURL,fileName):4      u = urllib.urlopen(imageURL)5      data = u.read()6      f = open(fileName, 'wb')7      f.write(data)8      f.close()

2)写入文本

1 def saveBrief(self,content,name):2 fileName = name + "/" + name + ".txt"3 f = open(fileName,"w+")4 print u"正在偷偷保存她的个人信息为",fileName5 f.write(content.encode('utf-8'))

3)创建新目录

1   2 #创建新目录 3 def mkdir(self,path): 4     path = path.strip() 5     # 判断路径是否存在 6     # 存在     True 7     # 不存在   False 8     isExists=os.path.exists(path) 9     # 判断结果10     if not isExists:11         # 如果不存在则创建目录12         # 创建目录操作函数13         os.makedirs(path)14         return True15     else:16         # 如果目录存在则不创建,并提示目录已存在17         return False

3.代码完善

主要的知识点已经在前面都涉及到了,如果大家前面的章节都已经看了,完成这个爬虫不在话下,具体的详情在此不再赘述,直接帖代码啦。

1    2 __author__ = 'CQC'  3 # -*- coding:utf-8 -*-  4    5 import urllib  6 import urllib2  7 import re  8 import tool  9 import os 10   11 #抓取MM 12 class Spider: 13   14     #页面初始化 15     def __init__(self): 16         self.siteURL = 'http://mm.taobao.com/json/request_top_list.htm' 17         self.tool = tool.Tool() 18   19     #获取索引页面的内容 20     def getPage(self,pageIndex): 21         url = self.siteURL + "?page=" + str(pageIndex) 22         request = urllib2.Request(url) 23         response = urllib2.urlopen(request) 24         return response.read().decode('gbk') 25   26     #获取索引界面所有MM的信息,list格式 27     def getContents(self,pageIndex): 28         page = self.getPage(pageIndex) 29         pattern = re.compile('
(.*?)
1   2 __author__ = 'CQC' 3 #-*- coding:utf-8 -*- 4 import re 5   6 #处理页面标签类 7 class Tool: 8     #去除img标签,1-7位空格,  9     removeImg = re.compile('
| {1,7}| ')10 #删除超链接标签11 removeAddr = re.compile('
|')12 #把换行的标签换为\n13 replaceLine = re.compile('|
|
|

')14 #将表格制表替换为\t15 replaceTD= re.compile('')16 #将换行符或双换行符替换为\n17 replaceBR = re.compile('
|
')18 #将其余标签剔除19 removeExtraTag = re.compile('<.*?>')20 #将多行空行删除21 removeNoneLine = re.compile('\n+')22 def replace(self,x):23 x = re.sub(self.removeImg,"",x)24 x = re.sub(self.removeAddr,"",x)25 x = re.sub(self.replaceLine,"\n",x)26 x = re.sub(self.replaceTD,"\t",x)27 x = re.sub(self.replaceBR,"\n",x)28 x = re.sub(self.removeExtraTag,"",x)29 x = re.sub(self.removeNoneLine,"\n",x)30 #strip()将前后多余内容删除31 return x.strip()

以上两个文件就是所有的代码内容,运行一下试试看,那叫一个酸爽啊

看看文件夹里面有什么变化

 

不知不觉,海量的MM图片已经进入了你的电脑,还不快快去试试看!!

 

转载于:https://www.cnblogs.com/xiaoyiq/p/11319685.html

你可能感兴趣的文章
Ajax做日期选择
查看>>
TFTP简单文件传送协议
查看>>
dubbo服务引用与集群容错
查看>>
ptrace
查看>>
看懂UML类图和时序图
查看>>
【WP8.1开发】选择与搜索联系人
查看>>
SQLite中的SELECT子句使用表达式
查看>>
Kubernetes系列之监控Metres-server实战篇
查看>>
文件操作
查看>>
MFC中无标题栏窗口的移动
查看>>
zabbix报错cannot set resource limit: [13] Permission denied解决方法
查看>>
查看linux系统是运行在物理机还是虚拟机方法
查看>>
汇编语言---编码规则及位运算基础
查看>>
gcd函数两种实现(参考)
查看>>
色彩理论学习-摘自百度百科
查看>>
git简单用法
查看>>
python入门16 递归函数 高阶函数
查看>>
JAVA学习课本内容总结
查看>>
Android之Activity系列总结(三)--Activity的四种启动模式
查看>>
烽火传递
查看>>