使用Python从网页选择特定文本
虽然我很喜欢这个程序,但我对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 的地方。
最后,我把结果的最后一个字符去掉,因为我的正则表达式多保存了一个点。只要有耐心,你可以把结果精确到你真正需要的内容。