写爬虫吗?你肯定没用过这个库,用完直呼:还行

本篇博客给大家带来一个国内作者开发的第三方【小】库 – txdpy ,使用这个库是无意中发现了一个函数 webptablesl(),它可以传入一个 url 地址,然后把带合并单元格的表格给解析出来,非常有趣。

txdpy 库介绍

什么是 txdpy 库

txdpy 库里面集成了一些方法,由于官方手册不完整,可以在 __init__ 文件中查看到如下方法。

 ['urljoin','headers_dict','PyMySQL','PyBloomFilter','rl','si','liduel','param_dict',
           'is_num','is_Sletter','is_Bletter','is_letter','is_num_letter','is_chinese',
           'get_chinese','get_letter','get_Bletter','get_Sletter','get_num','get_middle',
           'get_num_letter','webptablesl','req','dow_file','list_dupl','uc_easy','get_ssq',
           'excel_into_mysql']

从这些函数里面可以看到一些有趣的内容,例如 is_num(),判断是否为数字,get_chinese() 获取中文,
uc_easy 这个竟然是操作 selenium 的,实在没想到,,ԾㅂԾ,。

txdpy 库的安装和使用

安装命令如下所示:

pip install txdpy

使用也非常简单,直接导入,然后判断一个字符串是否为纯数字字符串。

import txdpy as tx

from loguru import logger

common_str = '134dhsh1239aasdd@Python 梦想橡皮擦'


def is_num():
    """
    It returns True if the input is a number, and False otherwise
    """
    logger.info('上述字符串是纯数字字符串吗?:{0}'.format(tx.is_num(common_str)))


is_num()

代码运行结果如下。

如果在使用过程中出现如下错误,请按照后文内容进行处理。

SyntaxError: future feature annotations is not defined

语法错误,python 版本太低造成的,升级 Python 到 3.8 以上试试。

运行结果如下所示。

写爬虫吗?你肯定没用过这个库,用完直呼:还行
除此之外,还可以直接使用该库提取中文。

def get_chinese():
    """
    It returns the string "Chinese"
    """

    logger.info('提取到字符串的中文是:{0}'.format(tx.get_chinese(common_str)))


get_chinese()

写爬虫吗?你肯定没用过这个库,用完直呼:还行

txdpy 库快速采集表格,而且表格有拆分情况

webptablesl 方法快速提取表格

首先看一下目标站点:https://zsb.tiangong.edu.cn/2022/0908/c197a79164/page.htm

在该站点中,存在一个包含合并单元格的表。

写爬虫吗?你肯定没用过这个库,用完直呼:还行
我们需要快速将其提取出来。

import requests
from txdpy import webptablesl

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36"
}
res = requests.get('https://zsb.tiangong.edu.cn/2022/0908/c197a79164/page.htm', headers=headers, verify=False)
res.encoding = res.apparent_encoding
res = res.text

xpath = '//table'
trs = (webptablesl(res, xpath))
for tr in trs:
    print(tr)

运行代码之后,会发现直接将表格中的数据进行了提取。

写爬虫吗?你肯定没用过这个库,用完直呼:还行
而且你会发现 txdpy 已经将合并的单元格进行了展开,我们对比一下采集结果和网页表格,发现完全正确,使用 webptablesl() 函数之后,大幅度降低了我们的代码量。

写爬虫吗?你肯定没用过这个库,用完直呼:还行

库不大,使用起来也不费力,还能满足要求,非常好的一款国产小库,推荐一下。

写python爬虫,你永远绕不过去代理问题

开源地址如下:
https://gitee.com/tang-xudong666/txdpy/tree/master

📢📢📢📢📢📢
💗 你正在阅读 【梦想橡皮擦】 的博客
👍 阅读完毕,可以点点小手赞一下
🌻 发现错误,直接评论区中指正吧
📆 橡皮擦的第 878 篇原创博客

👇 全网 6000+人正在学习的 爬虫专栏 👇👇👇👇

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梦想橡皮擦

如有帮助,来瓶可乐

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

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

打赏作者

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

抵扣说明:

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

余额充值