ajax抓取网页内容(Python网络爬虫内容提取器)
优采云 发布时间: 2022-04-01 16:09ajax抓取网页内容(Python网络爬虫内容提取器)
1 简介
在 Python 网络爬虫内容提取器一文中,我们详细讲解了核心组件:可插拔内容提取器类 gsExtractor。本文记录了在确定gsExtractor技术路线过程中所做的编程实验。这是第二部分。第一部分实验用xslt方法提取静态网页内容,一次性转换成xml格式。一个问题仍然存在:如何提取由 javascript 管理的动态内容?那么这篇文章就回答了这个问题。
2. 动态内容提取技术组件
上一篇python使用xslt提取网页数据,要提取的内容是直接从网页的源码中获取的。但是有些Ajax动态内容在源码中是找不到的,所以需要找到合适的程序库来加载异步或者动态加载的内容,交给本项目的抽取器进行抽取。
Python可以使用selenium来执行javascript,而selenium可以让浏览器自动加载页面并获取需要的数据。Selenium 没有自己的浏览器,可以使用第三方浏览器如 Firefox、Chrome 等,也可以使用 PhantomJS 等无头浏览器在后台执行。
三、源码及实验过程
假设我们要抓取京东手机页面的手机名称和价格(网页源码中找不到价格),如下图:
Step 1:利用吉搜Kemoji直观的标注功能,可以非常快速的自动生成一个调试好的抓取规则,其实就是一个标准的xslt程序,如下图,将生成的xslt程序复制到程序中的下面。注:本文仅记录实验过程。在实际系统中,将使用各种方法将 xslt 程序注入到内容提取器中。
第二步:执行以下代码(windows10下测试通过,python3.2),请注意:xslt是一个比较长的字符串,如果删除这个字符串,代码只有几行,足够查看 Python Mighty #/usr/bin/python
从 urllib 导入请求
从 lxml 导入 etree
从硒导入网络驱动程序
*敏*感*词*时间
#京东手机产品页面