使用Python爬取天猫商城商品新闻并实行数量可视化

发布时间:2019-04-03  栏目:Python  评论:0 Comments

图片 1

图片 2

万一是一般人为了让投机买的事物放心当然是选拔一条一条看,可能直接去实体店买。不过身为技(chui)术(niu)人(zhuang)员(bi)的小编,肯定是用Python批量爬取Tmall商品新闻并开始展览简短的数额解析啦~~~~

Selenium自身不带浏览器,须要非凡第3方浏览器来选择。通过help命令查看Selenium的Webdriver功用,查看Webdriver协助的浏览器:

图片 3

1~4行

图片 4

此地所举的案例,是选拔Selenium爬取Taobao商品音信,爬取的内容为Taobao网(https://www.taobao.com/)上男士短袖的商品信息,如下图所示:

然后用Python对其进行数量解析,对于数据可视化小编对比推荐pyecharts

并且如下图所示,“检查”下一页成分:

 

动用selenium模拟输入“男人短袖”,并仿照点击操作,并赢获得相应的页面新闻,调取主方法分析。

 

图片 5

图片 6

图片 7

  1. F12(开发者选项)
  2. Notework
  3. F5(刷新)
  4. feedRateList(文件名)
  5. Headers
  6. 复制Request URL

———————————————————

看望运维后的意义图

10~11行

目前人们不畏是买个牙刷大概都会在淘宝方面,而且在买东西的时候各类人都会做的一件工作正是看评论,看看在此以前买家评论驾驭商品品质,外观是还是不是和图表相同等等。不过要是实在想要一条一条去看的话,那日子是真的要很多,当然了假诺买的小物件那倒无所谓,假如是相比尊贵的物料就亟须得好赏心悦目了(PS:在小编心里100之上正是贵重物品,哈哈哈哈)

群众号-智能化IT系统。周周都有技巧小说推送,包括原创技术干货,以及技巧工作的体会分享。扫描下方关切。

它能够是那般的

35~47行

 

图片 8

想要爬取评论第三件事便是找到真正的UPRADOL地址,具体步骤:

运用lxml抓取网页数据,分别定位到所急需的音讯,并把信息集成至json,存款和储蓄至mongoDB。

图片 9

Selenium是多个用于Web应用程序测试的工具,Selenium直接运营在浏览器中,就如真正的用户在操作壹样。由于这几个性情,Selenium也是2个强硬的互连网数据收集工具,其得以让浏览器自动加载页面,那样,使用了异步加载技术的网页,也可获取其要求的多少。

图片 10

案例中行使Selenium和PhantomJS,模拟电脑的搜索操作,输入商品名称举行检索,如图所示,“检查”搜索框成分。

万一你想要进行不难多少解析的话,那能够把爬取下来的褒贬保存下来。

6~8行

 

此处能够见见,在用户输入天猫商城后,须求效法输入,在输入框输入“男士短袖”。

然后去除不供给的字段,获取本人想要的内容

在这一个案例中,选择PhantomJS。Selenium和PhantomJS的分外使用能够完全模仿用户在浏览器上的拥有操作,包罗输入框内容填写、单击、截屏、下滑等各样操作。那样,对于须要报到的网址,用户能够不须要经过组织表单或提交cookie消息来报到网址。

也得以是那般的

查看执行后的结果,如下图所示:

 

图片 11

末了把爬取数据存款和储蓄到MongoDB数据库中。

2. 案例介绍

分页处理。

  • mongoDB的运用,以及在python中用mongodb举行数量存款和储蓄。

  • lxml,爬虫叁大办法之1,解析效能相比较高,使用难度相比较正则表明式要低(上一篇小说的解析方法是正则表达式)。

  • 停顿休息的方法:driver.implicitly_wait

四. 源代码

爬取的始末有商品价位、付款人数、商品名称、商行名称和地方,如下图所示:

此处把除了selenium之外所必要的知识列一下,这里就不做详细表达了,假使不知道的话能够百度询问下。

伍. 代码解析

Selenium模块是Python的第壹方库,能够通过pip举办设置:

导入程序供给的库,selenium库用于模拟请求和互相。lxml解析数据。pymongo是mongoDB
的交互库。

一. Selenium和PhantomJS介绍

pip3 install selenium

最大化PhantomJS窗口。

图片 12

三. 相关技能

from selenium import webdriver

help(webdriver)

14~33行

开拓mongoDB,进行仓库储存准备。

from selenium import webdriverfrom lxml import etreeimport timeimport pymongoclient = pymongo.MongoClient('localhost',  27017)mydb = client['mydb']taobao = mydb['taobao']driver = webdriver.PhantomJS()driver.maximize_window() def get_info:     page = page + 1     driver.get     driver.implicitly_wait(10)     selector = etree.HTML(driver.page_source)     infos = selector.xpath('//div[@]')     for info in infos:        data = info.xpath('div/div/a')[0]        goods =  data.xpath('string').strip()        price = info.xpath('div/div/div/strong/text()')[0]        sell =  info.xpath('div/div/div[@]/text()')[0]        shop =  info.xpath('div[2]/div[3]/div[1]/a/span[2]/text()')[0]        address =  info.xpath('div[2]/div[3]/div[2]/text()')[0]        commodity = {            'good':goods,            'price':price,            'sell':sell,            'shop':shop,            'address':address        }        taobao.insert_one(commodity)     if page <= 50:        NextPage     else:        passdef NextPage:     driver.get     driver.implicitly_wait(10)         driver.find_element_by_xpath('//a[@trace="srp_bottom_pagedown"]').click()     time.sleep(4)     driver.get(driver.current_url)     driver.implicitly_wait(10)     get_info(driver.current_url,page)if __name__ == '__main__':     page = 1     url = 'https://www.taobao.com/'     driver.get     driver.implicitly_wait(10)     driver.find_element_by_id('q').clear()     driver.find_element_by_id('q').send_keys('男士短袖')     driver.find_element_by_class_name('btn-search').click()     get_info(driver.current_url,page)

51~57行

代码如下所示,可复制直接实施:

留下评论

网站地图xml地图