php 抓取网页ajax数据(Python网络爬虫内容提取器一文项目启动说明(一))

优采云 发布时间: 2022-04-14 11:42

  php 抓取网页ajax数据(Python网络爬虫内容提取器一文项目启动说明(一))

  1、简介

  在 Python 网络爬虫内容提取器一文中,我们详细讲解了核心组件:可插拔内容提取器类 gsExtractor。本文记录了在确定gsExtractor技术路线过程中所做的编程实验。这是第一部分,尝试使用xslt方法提取静态网页内容并一次性转换为xml格式。

  2、使用lxml库提取网页内容

  lxml是python的一个库,可以快速灵活地处理XML。它支持 XML 路径语言 (XPath) 和可扩展样式表语言转换 (XSLT),并实现通用的 ElementTree API。

  这2天,我在python中测试了通过xslt提取网页内容,记录如下:

  2.1、抓住目标

  假设要提取jisoke官网老论坛的帖子标题和回复数,如下图,需要提取整个列表并保存为xml格式

  

  2.2、源码1:只抓取当前页面,结果显示在控制台

  Python的优势在于它可以用少量的代码解决一个问题。请注意,以下代码看起来很长。其实python函数调用的并不多。xslt 脚本占用了很大的空间。在这段代码中,只是一个长字符串。至于为什么选择 xslt 而不是离散的 xpath 或者令人头疼的正则表达式,请参考《Python Instant Web Crawler Project Startup Instructions》,我们希望通过这种架构,程序员的时间节省一半以上。

  可以复制并运行以下代码(windows10下测试,python3.2):

   from urllib import request from lxml import etree url="http://www.gooseeker.com/cn/forum/7" cOnn= request.urlopen(url) doc = etree.HTML(conn.read()) xslt_root = etree.XML("""\ """) transform = etree.XSLT(xslt_root) result_tree = transform(doc) print(result_tree)

  源码可以从文末的 GitHub 源码下载。

  2.3、获取结果

  得到的爬取结果如下:

  

  2.4、源码2:翻转取,并将结果保存到文件

  我们对2.2的代码进行了进一步的修改,增加了翻页功能来获取和保存结果文件。代码如下:

<p> from urllib import request from lxml import etree import time xslt_root = etree.XML("""\ """) baseurl = "http://www.gooseeker.com/cn/forum/7" basefilebegin = "jsk_bbs_" basefileend = ".xml" count = 1 while (count

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线