设为首页 - 加入收藏 长治站长网 (http://www.0355zz.com)- 国内知名站长资讯网站,提供最新最全的站长资讯,创业经验,网站建设等!
热搜: 平台 投影 nvidia
当前位置: 首页 > 运营中心 > 建站资源 > 优化 > 正文

教师节送什么?Python教你挑选礼物

发布时间:2019-09-13 13:39 所属栏目:[优化] 来源:叫我小包总
导读:又到了一年一度的教师节,每次教师节大家都会烦恼不知道送什么礼物?尤其是对于理工男来说,更是一个让人头大的问题。我今天就和大家分享一个用Python爬取淘宝商品信息的项目,希望可以给大家选礼物时提供一个参考。 1.爬取目标 本次项目利用selenium抓取淘

又到了一年一度的教师节,每次教师节大家都会烦恼不知道送什么礼物?尤其是对于理工男来说,更是一个让人头大的问题。我今天就和大家分享一个用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)?

【免责声明】本站内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

网友评论
推荐文章