加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

西席节送什么?Python教你挑选礼品

发布时间:2019-09-10 15:40:49 所属栏目:建站 来源:叫我小包总
导读:又到了一年一度的西席节,每次西席节各人城市烦恼不知道送什么礼品?尤其是对付理工男来说,更是一个让人头大的题目。我本日就和各人分享一个用Python爬取淘宝商品信息的项目,但愿可以给各人选礼品时提供一个参考。 1.爬取方针 本次项目操作selenium抓取淘
副问题[/!--empirenews.page--]

又到了一年一度的西席节,每次西席节各人城市烦恼不知道送什么礼品?尤其是对付理工男来说,更是一个让人头大的题目。我本日就和各人分享一个用Python爬取淘宝商品信息的项目,但愿可以给各人选礼品时提供一个参考。

西席节送什么?Python教你挑选礼品

1.爬取方针

本次项目操作selenium抓取淘宝商品信息,用selenium语法来获取商品信息、价值、购置人数、图片、以及店肆的名字,最后再把获取的信息储存在MongoDB中。

2.筹备事变

在开始本次项今朝,起首你要确保正确安装好Chome赏识器并设置好对应版本的ChromeDriver;其它,还必要正确安装Python的selenium库和pymongo库;最后还要在电脑上安装好MongoDB。

3.下面给出Windows下安装selenium、pymongo、MongoDB的要领

selenium:

  1. pip install selenium   || pip3 install selenium 

pymongo:

  1. pip install pymongo || pip3 install pymongo 

MongoDB:

因为MongoDB此刻版本较量多,3.0和4.0安装要领存在差别,我下载的是3.x版本的,安装和设置都较量简朴,以是,我也提议各人安装和行使3.x版本的。

下载链接:

https://www.mongodb.com/download-center/community

ChromeDriver下载链接:

https://chromedriver.storage.googleapis.com/index.html

这里下载的ChromeDriver版本要和你下载的谷歌赏识器的版内情同等,不然措施运行会呈现错误。下载完后将ChromeDriver.exe放到你Python安装路径下的Scripts中即可。

4.提取单页商品信息

获取各个元素用到的是selenium语法的

  1. find_element_by_xpath() 

括号中必要填入各元素的Xpath路径。

  • 获取商品信息

西席节送什么?Python教你挑选礼品

代码如下:

  1. 'info' : li.find_element_by_xpath('.//div[@class="row row-2 title"]').text 
  • 获取价值信息

西席节送什么?Python教你挑选礼品

代码如下:

  1. 'price' : li.find_element_by_xpath('.//a[@class="J_ClickStat"]').get_attribute('trace-price') + '元' 
  • 获取付款人数

西席节送什么?Python教你挑选礼品

代码如下:

  1. 'deal' : li.find_element_by_xpath('.//div[@class="deal-cnt"]').text 
  • 获取图片
西席节送什么?Python教你挑选礼品

代码如下:

  1. 'image' : li.find_element_by_xpath('.//div[@class="pic"]/a/img').get_attribute('src') 
  • 获取店肆名字

西席节送什么?Python教你挑选礼品

代码如下:

  1. 'name' : li.find_element_by_xpath('.//div[@class="shop"]/a/span[2]').text 

5.提取多页商品信息

颠末上面的说明,只能爬取一页的商品信息,我们想获取多页信息,就必要先界说一个函数,将总页数提取出来,代码如下

  1. #提取总页数 
  2. def search(): 
  3.     driver.find_element_by_id('q').send_keys('python') 
  4.     driver.find_element_by_class_name("tb-bg").click() 
  5.     time.sleep(10) 
  6.     token 
  7. = driver.find_element_by_xpath( 
  8. '//*[@id="mainsrp-pager"]/div/div/div/div[1]' 
  9. ).text 
  10.     token = int(re.compile('d+').search(token).group(0)) 
  11.     return token 

6.向下滑动页面

我们都知道selenium用来抓取动态渲染的页面很是有用,我们在抓取页面信息时,必要模仿人来操纵下拉、翻页等操纵。

对付下拉操纵,有爬虫基本的也许会想到用selenium模仿的操纵,但本次项目我们用js语法来模仿下拉,这样做的甜头就是不轻易被淘宝的反爬机制辨认,代码如下

  1. def drop_down(): 
  2.     for x in range(1,11,2): 
  3.         time.sleep(0.5) 
  4.         j = x/10           #滑动到的位置 
  5.         js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' %j 
  6.         driver.execute_script(js) 

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读