使用Python从网页选择特定文本

0 投票
1 回答
1232 浏览
提问于 2025-04-17 09:58

虽然我很喜欢这个程序,但我对Calibre每周更新的习惯感到非常厌烦。为了应对这个问题,我正在尝试用一个Python脚本来自动化这个过程。

我已经成功打开了文档,但我在找出如何从中提取特定字符串方面遇到了困难。因为Calibre的下载链接是依赖于需要获取的版本号。目前第218行包含以下内容:

       <a href="/projects/calibre/files/latest/download?source=files" title="/0.8.34/calibre-portable-0.8.34.zip:  released on 2012-01-06 07:22:08 UTC">

我需要从这一行中提取出“calibre-ebook.0.8.34”。有没有什么建议可以让我做到这一点?

import urllib2
print("Calibre is Updating")
url = urllib2.urlopen ( "http://sourceforge.net/projects/calibre/files" ).read()
print(url)

1 个回答

1

这是对你代码的一个修改:

import urllib2
import re

print("Calibre is Updating")
url = urllib2.urlopen ( "http://sourceforge.net/projects/calibre/files" ).read()

result = re.search('title="/[0-9.]*/([a-zA-Z\-]*-[0-9\.]*)', url).groups()[0][:-1]
print(result)

我在这里使用的是 re模块,它可以帮助我们找到符合你要求的字符串,并把它保存到一个叫 result 的地方。

最后,我把结果的最后一个字符去掉,因为我的正则表达式多保存了一个点。只要有耐心,你可以把结果精确到你真正需要的内容。

撰写回答