所以我只想提取特定网站的链接。我已经写了以下通过筛选这个网站几个小时了,但它并不适合我。你知道吗
match = re.compile('<a href="(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)(youtu|www.youtube|youtube|vimeo|dailymotion|)\.(.+?)"',re.DOTALL).findall(html)
for title in match:
print '<a href="'+title+'>'+title+'</a>'
上述方法给出了此错误:
print '<a href="'+title+'>'+title+'</a>'
TypeError: cannot concatenate 'str' and 'tuple' objects
如果我简单地说“print=title”,我会得到以下难看的结果
('https://www.', 'youtube', 'com/watch?v=gm2SGfjvgjM')
所有刮下的链接将如下所示:
<a href="https://www.youtube.com/watch?v=gm2SGfjvgjM"
我希望能像下面这样打印出来:
<a href="https://www.youtube.com/watch?v=gm2SGfjvgjM">youtube</a>
<a href="http://www.dailymotion.com/video/x5zuvuu">dailymotion</a>
玩Python已经有一段时间了,但是我很挣扎,哈哈。我花了无数的时间想弄出漂亮的汤,但就是弄不懂。如果可能的话,在不完全改变方法的情况下,非常感谢您的帮助。你知道吗
您可以简单地使用:
匹配元素由一个元组组成,其中每个元素都是一个匹配组。因此,您将它们连接在一起形成URL,第二个元素将是您用来命名链接的组。你知道吗
你的模式看起来不错。问题在于内部的捕获组。用
?:
使它们都不被捕获,这样就只能同时捕获整个表达式。你知道吗要保留链接和域名,还需要另一个小小的更改—捕获整个表达式,并将网站名称作为两个单独的组(前者也捕获后者):
通过
title[i]
访问组。你知道吗相关问题 更多 >
编程相关推荐