我正在尝试使用以下语句从网页中获取标题:
titl1 = re.findall(r'<title>(.*?)</title>',the_webpage)
使用它,我得到了 ['random webpage example1']。如何删除引号和括号?
我还尝试获取一组每小时更改的链接(这就是我需要通配符的原因):links = re.findall(r'(file=(.*?).mp3 )',the_webpage).
我明白了
[('file=http://media.kickstatic.com/kickapps/images/3380/audios/944521.mp3',
'http://media.kickstatic.com/kickapps/images/3380/audios/944521'),
('file=http://media.kickstatic.com/kickapps/images/3380/audios/944521.mp3',
'http://media.kickstatic.com/kickapps/images/3380/audios/944521'),
('file=http://media.kickstatic.com/kickapps/images/3380/audios/944521.mp3',
'http://media.kickstatic.com/kickapps/images/3380/audios/944521')]
如何在没有 file= 的情况下获取 mp3 链接?
我还想下载 mp3 文件并在它们后面加上网站的标题以便显示
随机网页example1.mp3
我该怎么做?我仍在学习 Python 和正则表达式,这有点难倒我。
请您参考如下方法:
至少对于第 1 部分,你可以做到
>>> mytitle = title1[0]
>>> print mytitle
random webpage example1
正则表达式返回匹配的字符串列表,因此您只需获取列表中的第一项。
同样,对于第二部分,正则表达式返回一个包含元组的列表。 你可以这样做:
>>> download_links = [href for (discard, href) in links]
>>> print download_links
['http://media.kickstatic.com/kickapps/images/3380/audios/944521', 'http://media.kickstatic.com/kickapps/images/3380/audios/944521', 'http://media.kickstatic.com/kickapps/images/3380/audios/944521']
至于下载文件,使用urlib2(至少对于python 2.x,不确定python 3.x)。参见 this question了解详情。
