使用Python获取实际的Facebook和Twitter图片网址

2 投票
1 回答
2490 浏览
提问于 2025-04-18 13:16

我想写一段Python代码,从包含图片的链接中下载“主”图片。

我手头有一些这样的链接(在文本文件中):

  1. http://t.co/fd9F0Gp1P1

这个链接指向一个Facebook的图片。

  1. http://t.co/0Ldy6j26fb

这个链接指向一个Twitter的图片。

但是这些链接展开后并不会直接得到.jpg或.png格式的图片。相反,它们会把我们引导到一个包含所需图片的页面。

我该如何从这些链接下载图片呢?

1 个回答

3

这里有一个例子,教你怎么从Facebook页面下载飞机的图片,你可以把这个方法改成适合你自己的Twitter页面:

from bs4 import BeautifulSoup
import urllib

urlData = urllib.urlopen('https://www.facebook.com/photo.php?fbid=10152055005350906')
data = str(urlData.readlines())
bs = BeautifulSoup(data)
imgUrl = bs.find('img', attrs={'class': 'fbPhotoImage img'}).get('src')
urllib.urlretrieve(imgUrl, "plane.jpg")

编辑

我决定也帮你解决Twitter的下载问题,这里是从你给的链接下载图片的Twitter例子:

from bs4 import BeautifulSoup
import urllib

urlData = urllib.urlopen('https://twitter.com/USABillOfRights/status/468852515409502210/photo/1')
data = str(urlData.readlines())
bs = BeautifulSoup(data)
imgUrl = bs.find('img', attrs={'alt': 'Embedded image permalink'}).get('src')
urllib.urlretrieve(imgUrl, "cnn.jpg")

还有一个关于BeautifulSoup的网页参考资料。

撰写回答