抱歉,你查看的文章不存在

爬取了20万淘宝店铺信息,我能干些什么?

写了个简单的多进程爬虫,按照热门类目,爬取了淘宝C点的20多万条店铺信息。

获取了店铺名、卖家昵称、店铺ID、店铺区域、店铺商品数量、店铺销量、店铺好评率、店铺等级等等信息。截图见文末

主要思路为:

一、从淘宝店铺搜索页面获取热门的类目信息;

def get_taobao_cate():
 url = 'https://shopsearch.taobao.com/search?app=shopsearch'
 driver = webdriver.PhantomJS(executable_path="F:\\phantomjs.exe")
 driver.get(url)
 driver.implicitly_wait(3)
 page = driver.page_source
 soup = BeautifulSoup(page,'lxml')
 cate_name = re.findall(r"q=(.*?)&tracelog=shopsearchnoqcat",str(soup))
 for c in cate_name:
 cname = urllib.parse.unquote(c,encoding='gb2312')
 cate_list.append(c)
 print(cname)
 print(cate_list)
二、按照热门类目信息,对店铺进行搜索,使用进程池Pool:
# 多线程执行 
pool = TheaderPool(processes=4) 
pool.map_async(get_seller_from_num,range(0,10020,20)) 
pool.close() 
pool.join()
三、解析淘宝搜索结果的Json数据,获取店铺信息:
def get_taobao_seller(keywords):
 # 爬取指定数量的店铺信息
 def get_seller_from_num(nums):
 url = "https://shopsearch.taobao.com/search?data-key=s&data-value={0}&ajax=true&_ksTS=1481770098290_1972&callback=jsonp602&app=shopsearch&q={1}&js=1&isb=0".format(nums,keywords)
 # url = "https://shopsearch.taobao.com/search?data-key=s&data-value={0}&ajax=true&callback=jsonp602&app=shopsearch&q={1}".format(nums,keywords)
 wbdata = requests.get(url).text[11:-2]
 data = json.loads(wbdata)
 shop_list = data['mods']['shoplist']['data']['shopItems']
 for s in shop_list:
 name = s['title'] # 店铺名
 nick = s['nick'] # 卖家昵称
 nid = s['nid'] # 店铺ID
 provcity = s['provcity'] # 店铺区域
 shopUrl = s['shopUrl'] # 店铺链接
 totalsold = s['totalsold'] # 店铺宝贝数量
 procnt = s['procnt'] # 店铺销量
 startFee = s['startFee'] # 未知
 mainAuction = s['mainAuction'] # 店铺关键词
 userRateUrl = s['userRateUrl'] # 用户评分链接
 dsr = json.loads(s['dsrInfo']['dsrStr'])
 goodratePercent = dsr['sgr'] # 店铺好评率
 srn = dsr['srn'] # 店铺等级
 category = dsr['ind'] # 店铺分类
 mas = dsr['mas'] # 描述相符
 sas = dsr['sas'] # 服务态度
 cas = dsr['cas'] # 物流速度
 data = {
 'name':name,
 'nick':nick,
 'nid':nid,
 'provcity':provcity,
 'shopUrl':shopUrl,
 'totalsold':totalsold,
 'procnt':procnt,
 'startFee':startFee,
 'goodratePercent':goodratePercent,
 # 'mainAuction':mainAuction,
 'userRateUrl':userRateUrl,
 'srn':srn,
 'category':category,
 'mas':mas,
 'sas':sas,
 'cas':cas
 }
 print(data)
 seller_info.insert_one(data)
 print("插入数据成功")
最后,用多进程执行:
if __name__ == '__main__':
 pool = Pool(processes=4)
 pool.map_async(get_taobao_seller,cate_list)
 pool.close()
 pool.join()

部分截图:

爬虫还比较粗糙,没有做任何的异常处理,也没有在数据插入的时候做重复值的判断(数据爬下来60多万,去重后只剩下20多万),没有使用IP代理池(这点小流量,阿里还是放过了)。

爬虫虽粗糙,数据还是拿下来了,接下来,用这些数据干些什么呢?

数据信息价值不大,需要的可以关注微信:州的先生,留言获取

原文发布于微信公众号 - 州的先生(zmister2016)

原文发表时间:2016-12-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

州的先生

4 篇文章54 人订阅

相关文章

来自专栏杨建荣的学习笔记

Java实现生产者消费者的两种方式(r12笔记第66天)

我在8年前去面试程序员的时候,一个不大的公司,里面的开发主管接待了我们,给我的题目就是写一段程序模拟生产者消费者问题,当时可把我难坏了,一下子感觉自己的知...

3877
来自专栏iOS开发随笔

iOS 简单的弹幕效果

1292
来自专栏张善友的专栏

Msdn 杂志 asp.net ajax 文章汇集

asp.net ajax 充分利用客户端 JavaScript、DHTML 和 XMLHttpRequest 对象。其目的是帮助开发人员创建更具交互性的支持 A...

2088
来自专栏MixLab科技+设计实验室

设计师编程指南之Sketch插件开发 4

为什么写这个系列的文章,一是因为网上相关的 sketch 插件开发教程太少,官方的文档写得不算太清楚,二是因为本公众号长期在研究智能设计相关的内容,基于 ske...

3528
来自专栏進无尽的文章

地图| 高德地图源码级使用大全

高德地图提供包括:web前端、Android、iOS、服务器、小程序等平台的地图服务, 地图功能众多,本文记载的只是自己遇到的一些问题,绝大部分功能只要参照官...

5902
来自专栏程序人生 阅读快乐

新编Office 2016应用大全(实战精华版) (Office办公无忧)

本书分为6篇21章,第一篇为Office 2016基础篇,包括第1~3章,主要介绍了Office办公组件操作界面、共同操作等。第二篇为Word 2016应用篇,...

2671
来自专栏AI-vell

黑科技:程序员如何打造属于自己的分体键盘

为了不要这么纠结,就自己diy一个咯,正好有台3D打印机(又一个装B神器,你值得拥有,O(∩_∩)O哈哈~),全部外壳自己打印,控制板用Arduino Leon...

1.1K8
来自专栏AI研习社

Github 项目推荐 | Twitter 开源数据分析工具 —— tinfoleak

Tinfoleak 是 OSINT (Open Source Intelligence) 和 SOCMINT (Social Media Intelligenc...

1813
来自专栏JadePeng的技术博客

HTML5录音控件

最近的项目又需要用到录音,年前有过调研,再次翻出来使用,这里做一个记录。 HTML5提供了录音支持,因此可以方便使用HTML5来录音,来实现录音、语音识别等功能...

1.6K5
来自专栏张善友的专栏

Entity Framework Code First 支持存储过程

存储过程(Stored Procedure)不仅仅是将多得简直荒唐的业务逻辑塞入数据库的一种方式;它还是避免将多得简直荒唐的存储逻辑塞入应用程序层(applic...

2048

扫码关注云+社区

领取腾讯云代金券