我查看了其他帖子,并试图在我的代码中实现他们所说的但我仍然遗漏了一些东西。
我要做的是从网站上获取所有图片链接,特别是reddit.com 一旦我获得链接以在我的浏览器中显示图像或下载它们并通过Windows Image Viewer显示它们。我只是想练习和拓宽我的蟒蛇技能。
我被困在获取链接并选择如何显示图像。 我现在拥有的是:
import urllib2
import re
links=urllib2.urlopen("http://www.reddit.com").read()
found=re.findall("http://imgur.com/+\w+.jpg", links)
print found #Just for testing purposes, to see what links are found
感谢您的帮助。
答案 0 :(得分:3)
reddit上的imgur.com
链接不有任何.jpg
个扩展名,因此您的正则表达式不会匹配任何内容。您应该寻找i.imgur.com
域名。
匹配re.findall("http://i.imgur.com/\w+.jpg", links)
会返回结果:
>>> re.findall("http://i.imgur.com/\w+.jpg", links)
['http://i.imgur.com/PMNZ2.jpg', 'http://i.imgur.com/akg4l.jpg', 'http://i.imgur.com/dAHtq.jpg', 'http://i.imgur.com/dAHtq.jpg', 'http://i.imgur.com/nT73r.jpg', 'http://i.imgur.com/nT73r.jpg', 'http://i.imgur.com/z2wIl.jpg', 'http://i.imgur.com/z2wIl.jpg']
您可以将其扩展为其他文件扩展名:
>>> re.findall("http://i.imgur.com/\w+.(?:jpg|gif|png)", links)
['http://i.imgur.com/PMNZ2.jpg', 'http://i.imgur.com/akg4l.jpg', 'http://i.imgur.com/dAHtq.jpg', 'http://i.imgur.com/dAHtq.jpg', 'http://i.imgur.com/rsIfN.png', 'http://i.imgur.com/rsIfN.png', 'http://i.imgur.com/nT73r.jpg', 'http://i.imgur.com/nT73r.jpg', 'http://i.imgur.com/bPs5N.gif', 'http://i.imgur.com/z2wIl.jpg', 'http://i.imgur.com/z2wIl.jpg']
您可能希望使用正确的HTML解析器而不是正则表达式;我可以推荐BeautifulSoup和lxml
。它可以更轻松地查找使用<img />
链接与这些工具的所有i.imgur.com
代码,包括.gif
和.png
文件(如果有)。