ajax抓取网页内容(Python网络爬虫内容提取器)

优采云 发布时间: 2021-11-15 14:00

  ajax抓取网页内容(Python网络爬虫内容提取器)

  1、简介

  在Python网络爬虫内容提取器一文中,我们详细讲解了核心组件:可插拔内容提取器类gsExtractor。本文记录了在确定gsExtractor技术路线过程中所做的编程实验。这是第二部分。第一部分是使用xslt一次性提取静态网页内容并转换成xml格式的实验。这就留下了一个问题:如何提取javascript管理的动态内容?那么这篇文章就回答了这个问题。

  2、提取动态内容的技术组件

  上一篇Python使用xslt提取网页数据,提取的内容直接从网页源码中获取。但是有些Ajax动态内容在源码中是找不到的,所以需要找一个合适的库来加载异步或者动态加载的内容,交给本项目的提取器进行提取。

  Python可以使用selenium来执行javascript,selenium可以让浏览器自动加载页面,获取需要的数据。Selenium本身没有浏览器,可以使用Firefox、Chrome等第三方浏览器,也可以使用PhantomJS等无头浏览器在后台执行。

  3、源码和实验过程

  如果我们要抓取京东手机页面的手机名称和价格(网页源码中没有找到价格),如下图:

  

  第一步:利用直观的采集搜索客户标记功能,可以很快自动生成调试好的抓包规则,其实就是一个标准的xslt程序,如下图,将生成的xslt程序复制到下面即可在程序中。注:本文仅记录实验过程。在实际系统中,xslt 程序会以多种方式注入到内容提取器中。

  

  第二步:执行如下代码(windows10下测试,python3.2,源码下载地址可在文章末尾的GitHub上找到),请注意:xslt是比较长的字符串,如果删除这个字符串,代码不是几行,足以展示Python的强大

  #/usr/bin/python

  从 urllib 导入请求

  从 lxml 导入 etree

  从硒导入网络驱动程序

  导入时间

  #京东移动产品页面

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线