博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
淘宝产品抓取实战
阅读量:5236 次
发布时间:2019-06-14

本文共 3833 字,大约阅读时间需要 12 分钟。

#!coding=utf-8import requestsimport reimport timeimport jsonfrom requests.packages.urllib3.exceptions import InsecureRequestWarningimport pandas as pdrequests.packages.urllib3.disable_warnings(InsecureRequestWarning)  ###禁止提醒SSL警告 class tb(object):####手机端     def __init__(self,path,seach):  ###保存数据路径        self.path = path  ###保存数据路径        self.seach= seach ##搜索词        self.s = requests.session()        headers = {            'Host':'s.m.taobao.com',            'Accept-Encoding':'br, gzip, deflate',            'Connection':'keep-alive',            'Accept':'application/json',            'User-Agent':'Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) FxiOS/10.6b8836 Mobile/16A366 Safari/605.1.15',            'Accept-Language':'zh-cn',            'X-Requested-With':'XMLHttpRequest',                   }        self.s.headers.update(headers)  ##插入头信息      def seachdata(self):        for i in range(0,100):            time.sleep(1.25)            url='https://s.m.taobao.com/search?event_submit_do_new_search_auction=1&_input_charset=utf-8&topSearch=1&atype=b&searchfrom=1&action=home%3Aredirect_app_action&from=1&q={}&sst=1&n=20&buying=buyitnow&m=api4h5&abtest=18&wlsort=18&style=list&closeModues=nav%2Cselecthot%2Conesearch&page={}'.format(self.seach,i)   ##爬取的网址            print(i)            req = self.s.get(url=url, verify=False).text  #爬取页面结果            try:                js=json.loads(req)                print(js)            except:                print('err')            listItem=js['listItem']            title=[]  ##名称            sold=[]   ##月销量            commentCount=[]  ##评论量            item_id=[]  ##商品ID            userId=[]   ##商家ID            nick=[]  ##商家名称            location=[]  ##商家地址            pic_path=[]  ##图片            itemNumId=[]  ##商品NID            originalPrice=[]  ##原价            price=[]  ##售价            category=[]  ##类别ID            itemurl=[]  ##商品链接            if listItem==[]:                break             for j in listItem:  ##数据提取                 title.append(j['title'])                sold.append(j['sold'])                try:                    commentCount.append(j['commentCount'])                except:                    commentCount.append('')                item_id.append(j['item_id'])                userId.append(j['userId'])                nick.append(j['nick'])                location.append(j['location'])                pic_path.append(j['pic_path'])                itemNumId.append(j['itemNumId'])                originalPrice.append(j['originalPrice'])                price.append(j['price'])                try:                    category.append(j['category'])                except:                    category.append('')                itemurl.append(j['url'])                data={                    'title_名称':title,                    'sold_月销量': sold,                    'commentCount_评论量': commentCount,                    'item_id_商品ID': item_id,                    'userId_商家ID': userId,                    'nick_商家名称': nick,                    'location_商家地址': location,                    'pic_path_图片': pic_path,                    'itemNumId_商品NID': itemNumId,                    'originalPrice_原价': originalPrice,                    'price_售价': price,                    'category_类别ID': category,                    'itemurl_商品链接': itemurl,                            }                 df=pd.DataFrame(data)                if i==0:                    df.to_csv(self.path+r'\out.csv', index=False, header=1, encoding="GB18030")                else:                    df.to_csv(self.path+r'\out.csv', index=False, header=0, mode='a', encoding="GB18030")###保存文件  if __name__ == '__main__':    t=tb(r'E:\taobao','手机')    t.seachdata()

 

转载于:https://www.cnblogs.com/chenxi188/p/10524190.html

你可能感兴趣的文章
C#2.0 读word的多个表格到DataGridView或是其它控件 XP Vista
查看>>
sql script: Graphs, Trees, Hierarchies and Recursive Queries
查看>>
Paper Reading: Relation Networks for Object Detection
查看>>
Android中点中overlay弹出带尾巴的气泡的实现
查看>>
Mybatis接口中传递多个参数
查看>>
Dreamweaver层使用八定律
查看>>
Java IO流学习总结
查看>>
day22 01 初识面向对象----简单的人狗大战小游戏
查看>>
数组的几种常用方法总结
查看>>
递归函数,二分运算,正则表达式
查看>>
阅读软件工程的问题
查看>>
【Netty】UDP广播事件
查看>>
(4)Numpy+矩阵计算+和生成
查看>>
ttt
查看>>
[置顶] java处理office文档与pdf文件(一)
查看>>
Flutter之内置动画(转)
查看>>
MySql优化相关概念的理解笔记
查看>>
sql索引影响数据存储位置的示例
查看>>
数据库解决方案
查看>>
备份U盘分区表,未雨绸缪
查看>>