python爬虫淘宝评论图片_Python爬虫实战四之抓取淘宝MM照片
福利啊福利,本次為大家帶來的項目是抓取淘寶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詳情頁面地址,姓名,年齡等等的信息打印出來,直接貼代碼如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
__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('
運行結果如下2.文件寫入簡介
在這里,我們有寫入圖片和寫入文本兩種方式
1)寫入圖片
1
2
3
4
5
6
7
#傳入圖片地址,文件名,保存單張圖片
def saveImg(self,imageURL,fileName):
u = urllib.urlopen(imageURL)
data= u.read()
f =open(fileName, 'wb')
f.write(data)
f.close()
2)寫入文本
1
2
3
4
5
def saveBrief(self,content,name):
fileName = name + "/" + name + ".txt"
f = open(fileName,"w+")
print u"正在偷偷保存她的個人信息為",fileName
f.write(content.encode('utf-8'))
3)創建新目錄
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#創建新目錄
def mkdir(self,path):
path = path.strip()
# 判斷路徑是否存在
# 存在 True
# 不存在 False
isExists=os.path.exists(path)
# 判斷結果
if not isExists:
# 如果不存在則創建目錄
# 創建目錄操作函數
os.makedirs(path)
return True
else:
# 如果目錄存在則不創建,并提示目錄已存在
return False
3.代碼完善
主要的知識點已經在前面都涉及到了,如果大家前面的章節都已經看了,完成這個爬蟲不在話下,具體的詳情在此不再贅述,直接帖代碼啦。
1
spider.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
__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('
(.*?)總結
以上是生活随笔為你收集整理的python爬虫淘宝评论图片_Python爬虫实战四之抓取淘宝MM照片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: thinkphp5多级控制器是什么?怎么
- 下一篇: 前端学习(3319):undefine和