python抓取网页数据(Python网络爬虫内容提取器一文(一))

优采云 发布时间: 2021-10-06 05:26

  python抓取网页数据(Python网络爬虫内容提取器一文(一))

  1 简介

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

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

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

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

  2.1、爬取目标

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

  

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

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

  可以复制运行如下代码(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人工客服


线