python网页数据抓取( Python网络爬虫内容提取器一文项目启动说明(一))
优采云 发布时间: 2021-09-15 19:09python网页数据抓取(
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. 添加上一章的源代码下载源代码