码迷,mamicode.com
首页 > 其他好文 > 详细

淘宝商品比价定向爬虫

时间:2018-01-19 11:54:10      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:http   淘宝   ofo   bsp   循环   _for   sea   plt   body   

功能描述

  • 目标:获取淘宝搜索页面的信息,提取其中名称和价格
  • 理解:淘宝搜索接口 翻页的处理
  • 技术路线:requests+re

搜索"书包",浏览器起始页链接:
https://s.taobao.com/search?q=书包&commend=all&ssid=s5e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856taobaoitem.1&ie=utf8&initiative_id=tbindexz_20170306

第二页:

https://s.taobao.com/search?q=书包&commend=all&ssid=s5e&search_type=item&sourceId=tb.index&spm=a21bo.2017.201856taobaoitem.1&ie=utf8&initiative_id=tbindexz_20170306&bcoffset=4&ntoffset=4&p4ppushleft=1%2C48&s=44

每一页有44个商品。

程序的结构

  • 步骤1 提交商品搜索请求,循环获取页面
  • 步骤2 对于每个页面,提取商品名称和价格信息
  • 步骤3 将信息输出在屏幕上
 1 import requests
 2 import re
 3 def getHTMLText(url):
 4     try:
 5         r = requests.get(url, timeout = 30)
 6         r.raise_for_status()
 7         r.encoding = r.apparent_encoding
 8         return r.text
 9     except:
10         return ""
11 def parsePage(goodsList, html):
12     try:
13         priseList = re.findall(r\"view_price\"\:\"[\d\.]*\",html)
14         titleList = re.findall(r\"raw_title\"\:\".*?\", html)
15         for i in range(len(priseList)):
16             prise = eval(priseList[i].split(:)[1])
17             title = eval(titleList[i].split(:)[1])
18             goodsList.append([prise, title])
19     except:
20         print("")
21 def printGoodsList(goodsList):
22     tplt = "{:4}\t{:8}\t{:16}"
23     print(tplt.format("序号", "价格", "商品名称"))
24     count = 0
25     for g in goodsList:
26         count = count + 1
27         print(tplt.format(count, g[0], g[1]))
28 def main():
29     goods = 书包
30     depth = 3
31     stard_url = https://s.taobao.com/search?q= + goods
32     infoList = []
33     for i in range(depth):
34         try:
35             url = stard_url + &s + str(44 * i)
36             html = getHTMLText(url)
37             parsePage(infoList, html)
38         except:
39             continue
40     printGoodsList(infoList)
41 main()

输出(部分):

技术分享图片

 

淘宝商品比价定向爬虫

标签:http   淘宝   ofo   bsp   循环   _for   sea   plt   body   

原文地址:https://www.cnblogs.com/zhang-anan/p/8315259.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!