投稿    登录
  博主录制的Python3爬虫视频教程已发布!详情请戳Python3爬虫视频教程!希望大家支持!非常感谢!

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

Python 崔庆才 236695浏览 163评论

福利啊福利,本次为大家带来的项目是抓取淘宝MM照片并保存起来,大家有没有很激动呢?

最新动态

更新时间:2015/8/2

最近好多读者反映代码已经不能用了,原因是淘宝索引页的MM链接改了。网站改版了,URL的索引已经和之前的不一样了,之前可以直接跳转到每个MM的个性域名,现在中间加了一个跳转页,本以为可以通过这个页面然后跳转到原来的个性域名,而经过一番折腾发现,这个跳转页中的内容是JS动态生成的,所以不能用Urllib库来直接抓取了,本篇就只提供学习思路,代码不能继续用了。

之后博主会利用其它方法来尝试解决,如果解决,第一时间更新!谢谢大家!

更新时间:2016/3/26

如上问题已解决,利用 PhantomJS的动态解析即可完成。因为 PySpider 同样支持 PhantomJS,所以我直接利用了 PySpider 来完成,解决方案如下

解决方案

另外如果不想使用框架,可以直接利用 Selenium + PhantomJS 来解析,同样方便,解决方案可以参考

动态解析解决方案

本篇目标

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详情页面地址,姓名,年龄等等的信息打印出来,直接贴代码如下

运行结果如下

QQ截图20150220234132

 2.文件写入简介

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

1)写入图片

2)写入文本

3)创建新目录

3.代码完善

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

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

QQ截图20150221020543

 

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

QQ截图20150221020709

 

QQ截图20150221021032

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

代码均为本人所敲,写的不好,大神勿喷,写来方便自己,同时分享给大家参考!希望大家支持!

转载请注明:静觅 » Python爬虫实战四之抓取淘宝MM照片

喜欢 (683)or分享 (0)

我的个人微信公众号,联系我请直接在公众号留言即可~

扫码或搜索:进击的Coder

进击的Coder

微信公众号 扫一扫关注

想结交更多的朋友吗?

来进击的Coder瞧瞧吧

进击的Coder

QQ群号 99350970 立即加入

进击的Coder灌水太多?

这里是纯粹的技术领地

激进的Coder

QQ群号 627725766 立即加入

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面的

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(163)个小伙伴在吐槽
  1. D:\App\python2.7\python.exe D:/CODE/accomplish_Code/test1.py 正在偷偷寻找第 2 个地方,看看MM们在不在 Traceback (most recent call last): 发现一位模特,名字叫 李喵喵 芳龄 28 ,她在 上海市 File "D:/CODE/accomplish_Code/test1.py", line 146, in 正在偷偷地保存 李喵喵 的信息 spider.savePagesInfo(2,3) 又意外地发现她的个人地址是 //mm.taobao.com/45834230.htm File "D:/CODE/accomplish_Code/test1.py", line 141, in savePagesInfo self.savePageInfo(i) File "D:/CODE/accomplish_Code/test1.py", line 124, in savePageInfo detailPage = self.getDetailPage(detailURL) File "D:/CODE/accomplish_Code/test1.py", line 36, in getDetailPage response = urllib2.urlopen(infoURL) #为什么这里不用request了 File "D:\App\python2.7\lib\urllib2.py", line 154, in urlopen return opener.open(url, data, timeout) File "D:\App\python2.7\lib\urllib2.py", line 421, in open protocol = req.get_type()
    OXsmall2018-02-25 20:31 回复
  2. D:\App\python2.7\python.exe D:/CODE/accomplish_Code/test1.py 正在偷偷寻找第 2 个地方,看看MM们在不在 Traceback (most recent call last): 发现一位模特,名字叫 李喵喵 芳龄 28 ,她在 上海市 File "D:/CODE/accomplish_Code/test1.py", line 146, in 正在偷偷地保存 李喵喵 的信息 spider.savePagesInfo(2,3) 又意外地发现她的个人地址是 //mm.taobao.com/45834230.htm File "D:/CODE/accomplish_Code/test1.py", line 141, in savePagesInfo self.savePageInfo(i) File "D:/CODE/accomplish_Code/test1.py", line 124, in savePageInfo detailPage = self.getDetailPage(detailURL) File "D:/CODE/accomplish_Code/test1.py", line 36, in getDetailPage response = urllib2.urlopen(infoURL) #为什么这里不用request了 File "D:\App\python2.7\lib\urllib2.py", line 154, in urlopen return opener.open(url, data, timeout) File "D:\App\python2.7\lib\urllib2.py", line 421, in open protocol = req.get_type() 这个是为啥呀。。
    OXsmallice2018-02-25 20:31 回复
  3. 不好意思,关注点和大家不太一样。看来她老早就出来当淘宝模特了啊。。
    versus0052017-09-26 11:50 回复
  4. 所以。。滕雨佳。现在不是成了一个卖衣服的网红了嘛。。
    versus0052017-09-26 11:50 回复
  5. 自己仿照博主的代码用python3.5写了一下放在了GitHub上,可以搜索516310189/PythonSpider在TaoMaoMM文件夹下,我遇到的问题写在了文件夹下的readme内,里面有自己分析的过程,交流欢迎!!!
    泪流干2017-09-19 22:50 回复
  6. 个人主页里的介绍信息无法显示
    o_O心跳的声音2017-09-02 09:31 回复
  7. 个人主页里的介绍信息无法显示
    匿名2017-09-02 09:31 回复
  8. 最新代码可以分享下吗? 先谢谢你
    sunny2017-08-29 21:09 回复
1 5 6 7