import requests

import re

from urllib.request import urlretrieve

import os

import ssl

ssl._create_default_https_context = ssl._create_unverified_context

res=requests.session()

prox={

#如有合适的代理可以放在这里

}

h={

'authorization': ''# 需要抓包获取authorization

'x-csrf-token': '' ,#需要抓包获取x-csrf-token

'cookie': '' ,#需要抓包获取cookie

}

def download(file_link,file_name):

#下载媒体

if os.path.exists(file_name) == False:

urlretrieve(file_link, file_name)

print('下载完成')

else:

print('文件已存在')

pass

def getrestid(id):

#获取rest_id函数

if os.path.exists('./twitter/'+id)==False:

os.makedirs('./twitter/'+id)

idurl = 'https://api.twitter.com/graphql/ZRnOhhXPwue_JGILb9TNug/UserByScreenName?variables=%7B%22screen_name%22%3A%22' + id + '%22%2C%22withHighlightedLabel%22%3Atrue%7D'

rest_id = res.get(idurl, headers=h,proxies=prox).json()['data']['user']['rest_id']

return (rest_id)

def search(id):

rest_id=getrestid(id)#获取rest_id

daurl = 'https://api.twitter.com/2/timeline/media/' + rest_id + '.json?include_profile_interstitial_type=1.txt&include_blocking=1.txt&include_blocked_by=1.txt&include_followed_by=1.txt&include_want_retweets=1.txt&include_mute_edge=1.txt&include_can_dm=1.txt&include_can_media_tag=1.txt&skip_status=1.txt&cards_platform=Web-12&include_cards=1.txt&include_composer_source=true&include_ext_alt_text=true&include_reply_count=1.txt&tweet_mode=extended&include_entities=true&include_user_entities=true&include_ext_media_color=true&include_ext_media_availability=true&send_error_codes=true&simple_quoted_tweets=true&count=3000&ext=mediaStats%2ChighlightedLabel%2CcameraMoment'

dat = res.get(daurl, headers=h).json()['globalObjects']['tweets'].values()

values = [i for i in dat]

for i in values:

try:

try:

full_text = i['full_text']#推文正文

cretime = i['created_at']

media_url_list = i['extended_entities']['media']#媒体list

for j in media_url_list:

media_url = j['media_url_https']

media_type = j['type']

if media_type == 'video':#视频

media_name = './twitter/' + id + '/' + re.sub('https://\S+', '-', full_text) + re.sub('\+.*', '-',cretime) + str(media_url_list.index(j)) + '.mp4'

videos = j['video_info']['variants']

video_size = 0

video_url = ""

live_url = ""

for k in videos:

video_type = k['content_type']

if video_type == 'application/x-mpegURL':

live_url=k['url']

else:

if k.get('bitrate') > video_size:

video_size = k['bitrate']

video_url = k['url']

download(video_url,media_name)

else:

#图片

media_name = './twitter/' + id + '/' + re.sub('https://\S+', '-', full_text) + re.sub('\+.*', '-',cretime) + str(media_url_list.index(j)) + '.jpg'

download(media_url,media_name)

except:

#多个图片

media_url_list = i['entities']['media']

for j in media_url_list:

media_url = j['media_url_https']

media_name = 'twitter/' + id + '/' + re.sub('https://\S+', '-', full_text) + re.sub('\+.*', '-',media_url_list.index(j)) + '.jpg'

download(media_url, media_name)

except:

print('no media')

if __name__ == '__main__':

id=input()#输入用户id

search(id)

python爬取推特图片_twitter图片视频批量下载相关推荐

  1. Python爬取京东商品评论和图片下载

    Python爬取京东商品评论和图片下载 代码仅供学习使用,切勿扩散并且频繁爬取网站 贴上代码和注释,方便自己下次看 import requests import time import json im ...

  2. 教你用python爬取王者荣耀英雄皮肤图片,并将图片保存在各自英雄的文件夹中。(附源码)

    教你用python爬取王者荣耀英雄皮肤图片,并将图片保存在各自英雄的文件夹中.(附源码) 代码展示: 保存在各自的文件夹中 美么? 让我们开始爬虫之路 开发环境 windows 10 python3. ...

  3. 使用python爬取斗图网的图片

    使用python爬取斗图网的图片 以下是代码部分: # -*- coding: utf-8 -*- """ Created on Wed Apr 14 14:41:42 ...

  4. 用python爬取动态网页上的图片(百度图片)

    用python爬取动态网页上的图片(百度图片) 参考B站一个视频,视频链接: https://www.bilibili.com/video/BV1Va4y1Y7fK?share_source=copy ...

  5. Python爬取王者荣耀英雄的皮肤数据并下载皮肤图片项目

    Python爬取王者荣耀英雄的皮肤数据,并下载皮肤图片!高清的图片用来做桌面也不错哟~ 网址:https://pvp.qq.com/web201605/herolist.shtml 1.获得英雄信息, ...

  6. python爬取妹子图网健康图片

    为了博取大家的眼球,博主选了这个题材,现实生活中博主很正直的人,嗯 废话不说 demo,本demo只爬取了封面图片,内部图片方法相同 import requests from pyquery impo ...

  7. python爬取捧腹网gif图片

    #_*_coding:utf-8_*_ #爬取捧腹网GIF图片 import urllib,re import urllib.request import chardet #需要导入这个模块,检测编码 ...

  8. python爬取qq空间锁密图片_Python3爬取QQ空间信息(下)

    |下载W3Cschool手机App,0基础随时随地学编程>>戳此了解| 导语 内容回顾: Python爬取QQ空间信息(上) 按照(上)中的安排,本期内容为抓取QQ空间的好友信息并做可视化 ...

  9. 用Python爬取B站、腾讯视频、芒果TV和爱奇艺视频弹幕

    众所周知,弹幕,即在网络上观看视频时弹出的评论性字幕.不知道大家看视频的时候会不会点开弹幕,于我而言,弹幕是视频内容的良好补充,是一个组织良好的评论序列.通过分析弹幕,我们可以快速洞察广大观众对于视频 ...

  10. python爬取B站up主全部视频封面

    B站up主的点赞投币转发等信息,以及弹幕文件.评论文件等等都可以调用特定的API接口来获得. python爬取B站弹幕.绘制词云等点击下方链接 https://blog.csdn.net/weixin ...

最新文章

  1. PL/SQL Developer报错提示 Not logged on 问题完美解决方案
  2. 爱python网_Python
  3. JZOJ 5628. 【NOI2018模拟4.4】Travel
  4. mongodb复制集部署
  5. 十大最常见的Java性能问题
  6. ios wkweb设置图片_iOS WKWebView的使用
  7. 2019年技术盘点云数据库篇(一):UCloud专家谈云数据库:千锤百炼 云之重器
  8. mysql用root账户建立用户和赋予权限
  9. Python遗传算法工具箱的使用(二)求解最短路径问题
  10. 使用ffmpeg解析mp4文件得到音频和视频数据
  11. 计算机专业能当电子厂技术员,我在一个机械工厂从事电气技术员的工作,谁能告诉..._电气工程师_帮考网...
  12. 计算机网络-网络规划与设计
  13. 时间序列分析之ADF检验
  14. 微型计算机不是ecu,ECU升级是什么意思?
  15. 使用cartopy画飞机的航线
  16. Stata新命令:readWind-快速读入并转换万德数据
  17. js的三大家族(offset/scroll/client)和一个事件对象(event)///正则
  18. cd4013编程c语言,cd4013中文资料汇总(引脚图及功能_工作原理及方式_功能结构_参 - 电气技术 - 电子发烧友网...
  19. jvm系列之一:jvm结构
  20. arcgis提取四至权利人--最小外接矩形

热门文章

  1. openwrt的自动挂载功能
  2. Registry私有仓库搭建及认证【转】
  3. TSL 传输层安全性协议
  4. PyTorch笔记【1】---A卡安装(RX580)无果后,改为N卡(2070)安装。这年头就不要用CPU了来搞AI了
  5. git 账号密码问题
  6. Canvas画椭圆的方法
  7. 二项式系数(枚举+二分+二项式定理)
  8. 单位dB(分贝)的含义和好处,dBm(dBmW 分贝毫瓦)的含义
  9. 45 STM32 IIC主机、从机通信实例(ma51t12b触摸按键芯片)
  10. 全国青少年编程等级考试python一级真题2022年3月(含题库答题软件账号)