集搜客网页抓取软件(Python使用xslt提取网页数据,python提取数据python)

优采云 发布时间: 2021-12-12 17:22

  集搜客网页抓取软件(Python使用xslt提取网页数据,python提取数据python)

  想知道使用xslt用python提取网页数据的方法的相关内容吗?在这篇文章中,fullerhua会为大家讲解使用xslt用Python提取网页数据的相关知识以及一些代码示例。欢迎阅读和指正。先说python,xslt提取网页数据,python提取网页数据,python提取数据,大家一起学习。

  1、简介

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

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

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

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

  2.1、 抓取目标

  假设你要在吉首官网提取旧版论坛的帖子标题和回复数,如下图,提取整个列表并保存为xml格式

  

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

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

  可以复制运行如下代码(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的代码做了进一步的修改,增加了翻页抓取和保存结果文件的功能。代码如下:

  

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 < 12):

url = baseurl + "?page=" + str(count)

conn = request.urlopen(url)

doc = etree.HTML(conn.read())

transform = etree.XSLT(xslt_root)

result_tree = transform(doc)

print(str(result_tree))

file_obj = open(basefilebegin+str(count)+basefileend,'w',encoding='UTF-8')

file_obj.write(str(result_tree))

file_obj.close()

count += 1

time.sleep(2)

  我们添加了写入文件的代码,并添加了一个循环来构建每个页面的 URL。但是如果在翻页的过程中URL总是相同的呢?其实这就是动态网页的内容,下面会讲到。

  3、总结

  这是开源Python通用爬虫项目的验证过程。在爬虫框架中,其他部分很容易通用化,即很难将网页内容提取出来并转化为结构化操作,我们称之为提取器。不过在GooSeeker可视化提取规则*敏*感*词*MS的帮助下,提取器生成过程会变得非常方便,可以通过标准化的方式插入,从而实现通用爬虫,后续文章将具体讲解MS策略与Python配合的具体方法。

  4、下一个阅读

  本文介绍的方法通常用于抓取静态网页的内容,也就是所谓的html文档中的内容。目前很多网站的内容都是用javascript动态生成的。一开始html没有这些内容,通过后加载。添加方式,那么需要用到动态技术,请阅读《Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容》

  5、Jisouke GooSeeker开源代码下载源码

  1.GooSeeker开源Python网络爬虫GitHub源码

  6、文档修改历史

  2016-05-26:V2.0,添加文字说明;添加帖子的代码

  2016-05-29:V2.1,添加上一章源码下载源

  相关文章

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线