fetchtaobaommPic - juedaiyuer/researchNote GitHub Wiki

抓取淘宝MM照片

抓取简要信息

# -*- 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('<div class="list-item".*?pic-word.*?<a href="(.*?)".*?<img src="(.*?)".*?<a class="lady-name.*?>(.*?)</a>.*?<strong>(.*?)</strong>.*?<span>(.*?)</span>',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)

正则表达式

pattern = re.compile('<div class="list-item".*?pic-word.*?<a href="(.*?)".*?<img src="(.*?)".*?<a class="lady-name.*?>(.*?)</a>.*?<strong>(.*?)</strong>.*?<span>(.*?)</span>',re.S)

上面的代码只能提供学习,实际运行没有意义了。

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

具体解决方案Python爬虫进阶四之PySpider的用法

source

⚠️ **GitHub.com Fallback** ⚠️