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

优采云 发布时间: 2021-09-15 19:09

  python网页数据抓取(

Python网络爬虫内容提取器一文项目启动说明(一))

  

  一,。导言

  在PythonWebCrawler内容提取器文章中,我们详细解释了核心组件:可插入内容提取器类gsextractor。本文记录了在确定GSR萃取器工艺路线过程中的程序设计实验。这是第一部分。实验使用XSLT一次性提取静态网页内容并将其转换为XML格式

  二,。使用lxml库提取网页内容

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

  在这两天里,我测试了如何在Python中通过XSLT提取网页内容。有关纪录如下:

  2.1,抓住目标

  假设您要提取jisoke官网上旧论坛的帖子标题和回复号,如下图所示,您需要提取整个列表并以XML格式保存

  

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

  Python的优点是它可以用少量代码解决问题。请注意,下面的代码看起来很长。事实上,Python函数调用很少,XSLT脚本占用了很大的空间。在这段代码中,它只是一个长字符串。关于为什么选择XSLT而不是离散XPath或抓头正则表达式,请参阅根据python实时web爬虫项目启动说明,我们希望通过此架构节省程序员一半以上的时间

  您可以复制并运行以下代码(在Windows 10中,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)

  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)

  我们添加了用于编写文件的代码和一个循环来构造每个翻页的web地址。但是,如果网页地址在翻页过程中保持不变怎么办?事实上,这就是动态web内容,将在下面讨论

  三,。总结

  这是开源Python通用爬虫项目的验证过程。在爬虫框架中,其他部分很容易变得通用,也就是说,提取web内容并将其转换为结构的操作很难通用,我们称之为提取器。然而,借助gooseeker视觉提取规则*敏*感*词*MS,提取程序的生成过程将变得非常方便,可以使用标准化的插入,从而实现通用的爬虫程序。在文章的后续文章中,我们将具体解释MS和python之间合作的具体方法

  四,。下次阅读

  本文介绍的方法通常用于捕获静态web页面的内容,即所谓HTML文档中的内容。目前,许多网站内容是通过JavaScript动态生成的。一开始,HTML没有这些内容。如果通过后加载添加,则需要采用动态技术。请阅读Python crawler使用selenium+phantom JS获取Ajax和动态HTML内容

  五,。Jisoke gooseeker开源代码下载源代码

  1.GooSeeker开源Python web爬虫GitHub源代码

  六,。文档修改历史记录

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

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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线