我很新鲜,我徘徊如何追踪和存储用户在他/她的推文中发布的图像.我在教程中找到了几种获取用户推文的方法,但我找不到只过滤图像的方法.
我使用以下代码来获取用户推文.怎样才能获得用户图像?
编辑:我编辑我的代码如上:
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(OAUTH_TOKEN, OAUTH_SECRET)
api = tweepy.API(auth)
timeline = api.user_timeline(count=10, screen_name = "zenitiss")
for tweet in timeline:
for media in tweet.entities.get("media",[{}]):
print media
#checks if there is any media-entity
if media.get("type",None) == "photo":
# checks if the entity is of the type "photo"
image_content=requests.get(media["media_url"])
print image_content
Run Code Online (Sandbox Code Playgroud)
然而,似乎for循环它不起作用.打印介质行打印空对象.基本上当我尝试打印用户的网址时,例如karyperry,我得到:
{u'url': u'http://t.co/TaP2JZrpxu', u'indices': [42, 64], u'expanded_url':
u'http://youtu.be/7bDLIV96LD4', u'display_url': u'youtu.be/7bDLIV96LD4'}
{u'url': u'https://t.co/t3hv7VQiPG', u'indices': [42, 65], u'expanded_url':
u'https://vine.co/v/MgvxZA2qKbV', u'display_url': u'vine.co/v/MgvxZA2qKbV'}
{u'url': u'http://t.co/vnJAAU7KN6', u'indices': [50, 72], u'expanded_url':
u'http://instagram.com/p/n01XZjv-fp/', u'display_url': u'instagram.com/p/n01XZjv-fp/'}
{u'url': u'http://t.co/NycqAwtcgo', u'indices': [78, 100], u'expanded_url':
u'http://bit.ly/1o7xQRj', u'display_url': u'bit.ly/1o7xQRj'}
{u'url': u'http://t.co/BG6ozuRD6D', u'indices': [111, 133], u'expanded_url':
u'http://www.johnnywujek.com/sos', u'display_url': u'johnnywujek.com/sos'}
{u'url': u'http://t.co/nWIQ9ruJ3f', u'indices': [88, 110], u'expanded_url':
u'http://uncf.us/1kSXIwF', u'display_url': u'uncf.us/1kSXIwF'}
{u'url': u'http://t.co/yTbOgqt9fw', u'indices': [101, 123], u'expanded_url':
u'http://instagram.com/p/nvxD8eP-SZ/', u'display_url': u'instagram.com/p/nvxD8eP-SZ/'}
Run Code Online (Sandbox Code Playgroud)
大多数网址都是图片,但是当我在tweet.entities.get("url",[{}])中为媒体添加'url'而不是'media'时.他们中的大多数是图片网址.
推文(他们的JSON表示)包含一个"媒体"实体,如这里提到的.假设推文中包含一个图像,Tweepy应该公开这种类型的实体:
tweet.entities["media"]["media_url"]
Run Code Online (Sandbox Code Playgroud)
因此,如果你想存储图像,你只需要通过python的请求库下载它.尝试在代码中添加类似以下语句的内容(或根据您的需要进行修改):
for media in tweet.entities.get("media",[{}]):
#checks if there is any media-entity
if media.get("type",None) == "photo":
# checks if the entity is of the type "photo"
image_content=requests.get(media["media_url"])
# save to file etc.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3911 次 |
| 最近记录: |