爬取了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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

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

1361
来自专栏SAP梦心的SAP分享

惊心动魄的SAP S4客户额度调整运动

      今天一大早,收到商务部发来的消息,说某一个客户的额度超额了,但实际上并未超额。从SAP系统中反馈的额度来看,显示超了2万多。后来经过在BP画面检查信...

1989
来自专栏施炯的IoT开发专栏

Mouse Gestures on Windows Mobile

         Windows Mobile设备屏幕比较小,设计合理的UI很重要。众所周知,在PC机上使用的软件,如遨游(Maxthon),是支持鼠标手势的。...

19210
来自专栏AI研习社

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

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

1333
来自专栏AI-vell

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

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

8838
来自专栏张善友的专栏

Msdn 杂志 asp.net ajax 文章汇集

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

1988
来自专栏Android 开发者

玩转全新的 Android 8.0 Oreo 后台策略

3224
来自专栏BIT泽清

教你如何提审iOS马甲包不会遇到2.1大礼包或4.3正确姿势分享

App Store 搜索关键词 世界杯 或者 通过链接下载 皇冠Ьet365-世界杯体育赛事直播吧:https://itunes.apple.com/cn/ap...

7395
来自专栏FreeBuf

Bash漏洞再次演进:缓冲区溢出导致远程任意命令执行

近几天,“Shellshock”Bash漏洞的出现可谓是给安全界投放了一颗重型炸弹,越来越多的厂商和黑白帽子都纷纷加入到分析阵营当中,同时也接二连三爆出了更多针...

19910
来自专栏Python数据科学

这些世界杯球星你真的认识吗?不如通过Python来认识一下吧

回到我们的正题,对于世界杯的球星们,人们知道的一般都是C罗,梅西,德罗巴等巨星,而对一些其它球星却很少了解。对于这些球星,你认识的有多少呢?下面就跟我一起认识一...

772

扫码关注云+社区