目标:获取淘宝搜索页面信息,提取其中的商品名称和价格
理解:淘宝的搜索接口、翻页的处理
技术路线: requests re
使用chrome浏览器搜索淘宝商品得到url:
https://s.taobao.com/search?initiative_id=tbindexz_20170527&ie=utf8&spm=a21bo.50862.201856-taobao-item.2&sourceId=tb.index&search_type=item&ssid=s5-e&commend=all&imgfile=&q=win10%E5%B9%B3%E6%9D%BF&suggest=0_2&_input_charset=utf-8&wq=win10&suggest_query=win10&source=suggest&bcoffset=4&ntoffset=4&p4ppushleft=1%2C48&s=0
第二页:
https://s.taobao.com/search?initiative_id=tbindexz_20170527&ie=utf8&spm=a21bo.50862.201856-taobao-item.2&sourceId=tb.index&search_type=item&ssid=s5-e&commend=all&imgfile=&q=win10%E5%B9%B3%E6%9D%BF&suggest=0_2&_input_charset=utf-8&wq=win10&suggest_query=win10&source=suggest&bcoffset=4&ntoffset=4&p4ppushleft=1%2C48&s=44
分析url:
关键词在q=后,页面为s=(页面-1)*44
程序的结构设计:
步骤1:提交商品搜索请求,获取页面
步骤2:对于每个页面,提取商品名称和价格信息
步骤3:将信息输出到屏幕上
main函数编写
def main():
goods = 'win10平板'
depth = 2
start_url = 'https://s.taobao.com/search?q=' +goods
infoList = []
for i in range(depth):
try:
url = start_url + '&s=' + str(44*i)
html = getHTMLText(url)
parsePage(infoList,html)
except:
continue
printGoodsList(infoList)
代码重点在解析页面中使用到的正则表达式
plt = re.findall(r'"view_price":"[\d.]"',html)
tlt = re.findall(r'"raw_title":".?"',html)
def parsePage(ilt,html):
try:
plt = re.findall(r'\"view_price\"\:\"[\d\.]*\"',html)
tlt = re.findall(r'\"raw_title\"\:\".*?\"',html)
for i in range(len(plt)):
price = eval(plt[i].split(':')[1])
title = eval(tlt[i].split(':')[1])
ilt.append([price,title])
except:
print("")
def printGoodsList(ilt):
tplt = "{:4}\t{:8}\t{:16}"
print(tplt.format("序号","价格","商品名称"))
count = 0
for g in ilt:
count = count + 1
print(tplt.format(count,g[0],g[1]))
输出结果
runfile('C:/Users/Sean Chang/.spyder/taobaoprice.py', wdir='C:/Users/Sean Chang/.spyder')
序号 价格 商品名称
1 2799.00 Dell/戴尔魔方灵越 轻薄笔记本电脑
2 1049.00 双系统平板电脑10英寸Teclast/台电 Tbook10S二合一笔记本Win10
3 999.00 双系统PC小平板二合一电脑WIN10安卓11.6英寸12酷比魔方 iwork1X
4 1699.00 Jumper/中柏 EZpad 6 M4四核10.6英寸二合一手写win10平板电脑
5 4058.00 Surface pro 4代 pro4 i5中文版WIFI 128GB平板电脑二合一3win10
6 1088.00 现货Pipo/品铂 X10 PRO 64GB 4GB win10一体主机平板电脑手机打印
7 1599.00 Jumper/中柏 EZpad 6 11.6英寸四核办公win10平板电脑二合一
8 1989.00 Onda/昂达 oBook11 Pro 11.6英寸 Win10系统 二合一平板电脑
9 1588.00 Microsoft/微软Surface Pro 绘图win10平板电脑10寸 PC平板二合一
10 599.00 Teclast/台电 x80 pro WIFI 32GB Win10双系统平板电脑安卓8英寸
11 600.00 10寸平板电脑win10四核安卓双系统10.1寸win8通话10.6寸9寸64G
12 1999.00 Teclast/台电 Tbook16 Power win10安卓双系统平板电脑12二合一寸
13 1299.00 Jumper/中柏 EZpad 6 M6四核10.8英寸办公win10平板电脑二合一
14 1379.00 Jumper/中柏 JK01-TT 10.1英寸Win10双系统双触摸平板电脑
15 1599.00 Teclast/台电 Tbook12S 12.2英寸二合一Win10双系统游戏平板电脑
16 979.00 Teclast/台电 X98 Plus II双系统二合一平板电脑Win10安卓9.7英寸
17 4088.00 Microsoft/微软 Surface Pro4平板电脑12寸Win10商务二合一笔记本
18 1799.00 Microsoft/微软 SURFACE 3 WIFI 128GB Win10平板电脑
19 495.00 Onda/昂达 V80 Plus WIFI 32GB 四核8英寸win10双系统平板电脑
20 475.00 Teclast/台电 X80 Plus WIFI 32GB WIN10 双系统平板电脑 8英寸
21 1208.00 Xiaomi/小米 小米平板3 WIFI安卓64G 16G7.9寸小米平板2win10电脑
22 869.00 Onda/昂达 oBook20 Plus 4G 64G 10.1寸平板电脑 安卓+WIN10
23 449.00 酷比魔方 iwork8旗舰版 32GB 8英寸64位四核WIN10游戏平板电脑
24 599.00 Onda/昂达 V891w CH WIFI 32GB 8.9吋高清屏WIN10双系统平板电脑
25 798.00 正品 平板电脑四核Z8350 10寸windows 双系统WIN10二合一
26 1079.00 Teclast/台电 Tbook10S二合一PC平板电脑10.1英寸Win10安卓双系统
27 529.00 Teclast/台电 x80 pro游戏Win10双系统平板电脑 安卓8英寸32GB
28 979.00 Teclast/台电 Tbook11双系统 WIFI 64GB win10平板电脑10.6英寸
29 1559.00 Teclast/台电 X2 Pro WIFI 64GB 11.6英寸平板电脑 正版Win10
30 979.00 Teclast/台电 Tbook10双系统 WIFI 64GB Win10平板电脑10.1英寸
31 989.00 Teclast/台电 X98 Plus II双系统 WIFI 64GB Win10平板电脑英寸
32 529.00 Onda/昂达 V80 Plus WIFI 32GB 双系统 8.0英寸安卓Win10平板电脑
33 479.00 Teclast/台电 X80 Plus WIFI 32GB Win10平板电脑8英寸英特尔现货
34 999.00 Teclast/台电 X98 Plus WIFI 64GB Win10安卓双系统平板电脑英寸
35 1199.00 Jumper/中柏 EZpad 6 M4 10.6英寸电磁屏手写win10平板电脑二合一
36 869.00 Onda/昂达 oBook20 Plus 4G 64G 10.1寸平板电脑 安卓+WIN10
37 799.00 Jumper/中柏 EZpad 6 M6 超薄小平板电脑win10平板电脑二合一四核
38 4188.00 Microsoft/微软 Surface Pro4 12.3英寸Win10触屏笔记本平板电脑
39 549.00 酷比魔方 iwork8 Air 32GB 8英寸高清WIN10双系统二合一平板电脑
40 999.00 微软win10/8PC平板二合一办公手提笔记本电脑12/11寸超薄本游戏本
41 1099.00 Jumper/中柏 EZpad 6 11.6英寸超薄办公win10平板电脑二合一分期
42 529.00 酷比魔方 iwork8 Air 32GB 8英寸 四核 WIN10平板电脑送蓝牙键盘
43 5299.00 Voyo VBook V3酷睿i7版13.3英寸Win10二合一平板电脑512G笔记本
44 1958.00 Onda/昂达 oBook11 Pro 64G Win10系统 11.6英寸 二合一平板电脑
45 1999.00 现货速发Teclast/台电 Tbook16 Power win10双系统二合一平板电脑
46 1999.00 Onda/昂达 小马31 13.3英寸金属Win10商务办公娱乐平板笔记本电脑
47 1188.00 CHUWI/驰为 Hi10 Plus 10.8寸Win10安卓双系统二合一商务平板电脑
48 1999.00 联想10寸平板电脑win10二合一wifi办公高清4G超薄学生掌上电脑pad
49 1389.00 Pipo/品铂 W1 pro64G 10.1英寸Win10系统手写平板电脑二合一平板
50 475.00 Teclast/台电 X80 Plus WIFI 32GB Win10平板电脑 8英寸游戏现货
51 4199.00 Voyo VBook V3七代酷睿i5版13.3英寸二合一Win10平板电脑超极本
52 1579.00 Teclast/台电 Tbook12S 12.2英寸二合一Win10双系统游戏平板电脑
53 1999.00 Teclast/台电 Tbook16 Power win10双系统平板电脑11.6英寸二合一
54 579.00 Teclast/台电 X80 Power双系统游戏Win10平板电脑 安卓8英寸32GB
55 539.00 Teclast/台电 x80 pro游戏Win10双系统平板电脑 安卓8英寸32GB
56 1298.00 Teclast/台电 Tbook16 Pro WIFI 64GB二合一Win10平板电脑双系统
57 17888.00 Microsoft/微软 Surface Book i7 8GB增强版平板电脑二合一win10
58 599.00 Microsoft/微软 Surface Pro 4 M3/I5平板电脑二合一笔记本win10
59 1999.00 酷比魔方 i7手写版 10.6英寸电磁屏酷睿M win10/8二合一平板电脑
60 6400.00 Microsoft/微软 Surface Pro 4 i5平板笔记本电脑二合一国行win10
61 1599.00 Teclast/台电 Tbook12S双系统Win10平板电脑二合一安卓12.2英寸10
62 1979.00 Teclast/台电 Tbook16 Power win10双系统平板电脑11.6英寸二合一
63 1079.00 Teclast/台电 Tbook10S二合一PC平板电脑10.1英寸Win10安卓双系统
64 5288.00 Lenovo/联想 Miix5 Miix5 Plus平板电脑二合一12英寸win10笔记本
65 629.00 Pipo/品铂 X8s WIFI 32GB 手机照片打印服务器主机win10平板电脑
66 749.00 Pipo/品铂 X9s WIFI 32GB 蓝牙手机照片打印服务器win10平板电脑
67 719.00 Onda/昂达 oBook20 SE 32G 10.1双系统win10安卓二合一平板电脑
68 1850.00 现货戴尔/Dell Venue 8 Pro 5855 8寸平板电脑Z8500 4G 64G Win10
69 1398.00 Teclast/台电 TBook12 Pro平板电脑二合一Win10双系统12.2英寸64G
70 1079.00 Teclast/台电 Tbook10S游戏Win10平板电脑二合一双系统 安卓寸
71 4599.00 Lenovo/联想 MIIX 510 5平板电脑PC二合一12.2英寸win10笔记本12
72 780.00 英特尔win10平板电脑二合一10寸四核安卓双系统4G64G超极本双USB
73 1399.00 Teclast/台电 TBook12 Pro二合一平板电脑Win10安卓双系统寸12
74 998.00 微软win10/8PC平板二合一手提办公笔记本电脑12/11寸超薄本游戏本
75 2330.00 Lenovo/联想 Yoga BOOK安卓/win10触摸平板笔记本二合一电脑10寸
76 1299.00 Onda/昂达 oBook10 Pro 10.1英寸 Win10二合一笔记本平板电脑现货
77 1579.00 Teclast/台电 TBook12 Pro平板电脑二合一Win10双系统12安卓英寸
78 1099.00 Pipo/品铂 w1s 64GB Win10双系统10.1英寸PC游戏二合一平板电脑
79 1978.00 Teclast/台电 Tbook16 Power win10安卓双系统平板电脑12二合一
80 1265.00 Onda/昂达 oBook10 Pro 10.1英寸Z8700芯二合一WIN10平板电脑现货