基本信息
源码名称:python3爬虫实例(采集淘宝商品数据)
源码大小:2.05KB
文件格式:.py
开发语言:Python
更新时间:2017-03-27
   友情提示:(无需注册或充值,赞助后即可获取资源下载链接)

     嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300

本次赞助数额为: 2 元 
   源码介绍

python爬取淘宝商品新信息,如果出现乱码,请加上如下代码:

import sys
reload(sys)
sys.setdefaultencoding('utf8')


#coding=utf-8
# 根据输入的关键字查询淘宝商品数据
# 淘宝编码是gbk
import re
import requests
import sys
reload(sys)
sys.setdefaultencoding('utf8')
url = 'https://s.taobao.com/search'
sp = input('请输入查询商品:')
page_num = input('请输入查询页码(以逗号隔开):')
ll = page_num.split(',')
if len(ll) == 2 :
    pass
elif len(ll) < 2:
    raise ValueError('请输入查询页码信息,格式如下:1,2')

payload = {'q': sp,'s': '1','ie':'utf8'}  #字典传递url参数
# file = open('taobao_test.txt','w',encoding='utf-8')

for k in range(int(ll[0]),int(ll[1])):        #100次,就是100个页的商品数据
# for k in range(int(1),100):
    payload ['s'] = 44*k 1   #此处改变的url参数为s,s为1时第一页,s为45是第二页,89时第三页以此类推                          
    resp = requests.get(url, params = payload)
    print((resp.url))          #打印访问的网址
    resp.encoding = 'utf-8'  #设置编码
    print(resp.text)
    title = re.findall(r'"raw_title":"([^"] )"',resp.text,re.I)  #正则保存所有raw_title的内容,这个是书名,下面是价格,地址
    price = re.findall(r'"view_price":"([^"] )"',resp.text,re.I)    
    loc = re.findall(r'"item_loc":"([^"] )"',resp.text,re.I)
    x = len(title)           #每一页商品的数量

    for i in range(0,x) :    #把列表的数据保存到文件中
        sp_name = ''
        sp_price = 0
        sp_loc = ''
        sp_name = title[i]
        if len(price) < x :
            if i < len(price):
                sp_price = price[i]
            else:
                sp_price = 0.00
        else:
            sp_price = price[i]

        if len(loc) < x :
            if i < len(loc):
                sp_loc = loc[i]
            else:
                sp_loc = ' '
        else:
            sp_loc = loc[i]

        print(str(k*44 i 1) '商品名称:' sp_name '\n' '价格:' sp_price '\n' '地址:' sp_loc '\n\n')
        # file.write(str(k*44 i 1) '商名:' title[i] '\n' '价格:' price[i] '\n' '地址:' loc[i] '\n\n')

# file.close()