lxparse:解析列表页链接和详情页内容

lxparse是一个用于解析政企网站列表页链接和提取详情页内容的Python库。它利用readability进行主体抽取,通过XPath规则筛选和余弦相似度计算来处理各种页面结构。库提供了列表页链接提取和详情页元素(如标题、作者、来源、发布时间和正文)的解析功能。尽管不能保证100%成功率,但提供了自定义规则以应对异常情况。适合快速动态监测大量网站数据。
摘要由CSDN通过智能技术生成

lxparse:一个适用于解析列表页链接和提取详请页内容的Python库。

Github地址:https://github.com/lixi5338619/lxparse


项目背景

现有2000个政企网站信源,要短时间实现动态监测。

开发时即要查看网站类型又要分析数据接口,然后配置解析规则,人都看麻了。所以写一个自动提取列表页链接的方法。

奈何国内的站点页面类型千奇百怪,几乎不存在通用的解析方法,只能说尽可能让页面内容提取更便捷一些。

lxparse中的列表页解析借助了readability的主体抽取方法,详情页解析引用了gen的一些正则匹配方法。


实现逻辑

列表页

1、提取列表页主体。删除html中的无关标签,主要以a标签聚焦程度为评估标准。
2、通过xpath规则筛选主体中存在的a标签,以h、ul/li、tr/td 为主,返回链接数组。
3、通过余弦公式计算数组中所有url的相似度,保留相似度较高的url,返回链接数组。
4、从数组中再次过滤,保留符合规则的链接。

详情页

标题、作者、来源:以常见规则匹配,并筛选和评估最优解。
发布时间:以常见规则和正文内容匹配,经过处理和验证后返回时间格式。
正文内容:通过readability的主体抽取方法,返回带标签和格式化的正文内容。


使用方法

安装: pip install lxparse
调用:

from lxparse import LxParse
lx = LxParse()
​
list_html = ""
lx.parse_list(list_html)
# 指定解析规则
lx.parse_list(list_html,xpath_list="/div[@id='lx']/a")
​
detail_html = ""
lx.parse_detail(detail_html)
# 指定解析规则,不声明则使用默认规则
xpath_item = {
    'xpath_title':'',
    'xpath_source':'',
    'xpath_date':'',
    'xpath_author':'',
    'xpath_content':'',
}
lx.parse_detail(detail_html,item=xpath_item)

parse_detail 返回:
在这里插入图片描述


测试代码

demo文件中分别有列表页和详情页的解析示例。

​一些页面测试:将html保存本地后,今日头条、新浪新闻、百度资讯、网易新闻、腾讯新闻等可正常解析。


备注

使用lxparse解析库解析时,如有解析异常可手动指定解析规则。

测试用例不多,毕竟目前无法100%解析成功,如有问题可以提issues一起优化。​

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

考古学家lx(李玺)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值