范文健康探索娱乐情感热点
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Python爬虫实战四之抓取淘宝MM照片

  本篇目标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 详情页面地址,姓名,年龄等等的信息打印出来,直接贴代码如下 __author__ = "CQC" # -*- coding:utf-8 -*-  import urllib import urllib2 import re  class Spider:      def __init__(self):         self.siteURL = "http://mm.taobao.com/json/request_top_list.htm"      def getPage(self,pageIndex):         url = self.siteURL + "?page=" + str(pageIndex)         print url         request = urllib2.Request(url)         response = urllib2.urlopen(request)         return response.read().decode("gbk")      def getContents(self,pageIndex):         page = self.getPage(pageIndex)         pattern = re.compile("//img05.71396.com/ba/lk/5c7276d5993418c4.jpg.*?//img05.71396.com/ba/lk/5c7276d5993418c4.jpg",re.S)         items = re.findall(pattern,page)         for item in items:             print item[0],item[1],item[2],item[3],item[4]  spider = Spider() spider.getContents(1)
  运行结果如下
  2. 文件写入简介
  在这里,我们有写入图片和写入文本两种方式 1)写入图片#传入图片地址,文件名,保存单张图片 def saveImg(self,imageURL,fileName):      u = urllib.urlopen(imageURL)      data = u.read()      f = open(fileName, "wb")      f.write(data)      f.close()2)写入文本def saveBrief(self,content,name):     fileName = name + "/" + name + ".txt"     f = open(fileName,"w+")     print u"正在偷偷保存她的个人信息为",fileName     f.write(content.encode("utf-8"))3)创建新目录#创建新目录 def mkdir(self,path):     path = path.strip()     # 判断路径是否存在     # 存在     True     # 不存在   False     isExists=os.path.exists(path)     # 判断结果     if not isExists:         # 如果不存在则创建目录         # 创建目录操作函数         os.makedirs(path)         return True     else:         # 如果目录存在则不创建,并提示目录已存在         return False3. 代码完善
  主要的知识点已经在前面都涉及到了,如果大家前面的章节都已经看了,完成这个爬虫不在话下,具体的详情在此不再赘述,直接帖代码啦。 spider.py__author__ = "CQC" # -*- coding:utf-8 -*-  import urllib import urllib2 import re import tool import os  #抓取MM class Spider:      #页面初始化     def __init__(self):         self.siteURL = "http://mm.taobao.com/json/request_top_list.htm"         self.tool = tool.Tool()      #获取索引页面的内容     def getPage(self,pageIndex):         url = self.siteURL + "?page=" + str(pageIndex)         request = urllib2.Request(url)         response = urllib2.urlopen(request)         return response.read().decode("gbk")      #获取索引界面所有MM的信息,list格式     def getContents(self,pageIndex):         page = self.getPage(pageIndex)         pattern = re.compile("//img05.71396.com/ba/lk/5c7276d5993418c4.jpg.*?//img05.71396.com/ba/lk/5c7276d5993418c4.jpg",re.S)         items = re.findall(pattern,page)         contents = []         for item in items:             contents.append([item[0],item[1],item[2],item[3],item[4]])         return contents      #获取MM个人详情页面     def getDetailPage(self,infoURL):         response = urllib2.urlopen(infoURL)         return response.read().decode("gbk")      #获取个人文字简介     def getBrief(self,page):         pattern = re.compile("//img05.71396.com/ba/lk/5c7276d5993418c4.jpg