Python网络爬虫-使用Selenium爬取京东商品

Python网络爬虫-模拟Ajax请求抓取微博中我们了解了Ajax的分析和抓取的方式,但是有很多的网站即使是Ajax来获取的数据,但是其Ajax接口含有很多加密参数,我们很难找出其中的规律,也就很难直接使用Ajax来抓取。

为了解决这些问题,我们可以直接使用模拟浏览器运行的方式来实现,这样就可以做到在浏览器中看到是什么样,抓取的源码就是什么样,也就是可见即可爬。这样我们就不用再去管网页内部的JavaScript用了什么算法渲染页面,不用管网页后台的Ajax接口到底有哪些参数。

Python提供了许多模拟浏览器运行的库,如Selenium、Splash等。

Selenium是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬。对于一些JavaSript动态渲染的页面来说,此种抓取方式非常有效。

下面使用Selenium来模拟浏览器操作爬取京东商城的商品信息。

1.目标

使用Selenium爬取京东商城商品信息并使用xpath解析得到商品的名称、价格、评论和店铺名称并将其写入文件保存。

2.准备工作

  • Chrome浏览器
  • 安装Python的Selenium库
  • 在Chrome里面配置ChromeDriver

3.网页分析

人工输入京东的网址https://www.jd.com/,然后在搜索框中输入ipad点击确认,往下拉到网页底部,页面上共加载出60个有关ipad关键字的商品信息,并且在页面底部有一个分页的导航,其中既包括了前7页的链接,页包括了下一页的链接。

4.爬取流程

  • 0基础url:https://www.jd.com/
  • 1使用selenium模拟浏览器,定位到搜索框,输入ipad关键字,然后点击确定
  • 2等待网页加载,获取网页代码
  • 3解析网页源代码,获取商品信息写入文件
  • 4以上流程结束,使用selenium定位到下一页的按钮,模拟点击
  • 5等待网页加载,重复以上234,直到获取到所有的页面的商品信息

5.使用selenium模拟爬取流程中的12流程

from selenium import webdriver
from selenium.common.exceptions import TimeoutExce
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值