# -*- coding: utf-8 -*-

import urllib.request

import json

import requests

import os

path = 'D:\\weibo'

#id = '[url=tel:2093492691]2093492691[/url]'这里决定爬取人的ID

id = '[url=tel:6049590367]6049590367[/url]'

proxy_addr = "122.241.72.191:808"

pic_num = 0

weibo_name = "programmer"

def use_proxy(url, proxy_addr):

req = urllib.request.Request(url)

req.add_header("User-Agent",

"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.221 Safari/537.36 SE 2.X MetaSr 1.0")

proxy = urllib.request.ProxyHandler({'http': proxy_addr})

opener = urllib.request.build_opener(proxy, urllib.request.HTTPHandler)

urllib.request.install_opener(opener)

data = urllib.request.urlopen(req).read().decode('utf-8', 'ignore')

return data

def get_containerid(url):

data = use_proxy(url, proxy_addr)

content = json.loads(data).get('data')

for data in content.get('tabsInfo').get('tabs'):

if (data.get('tab_type') == 'weibo'):

containerid = data.get('containerid')

return containerid

def get_userInfo(id):

url = 'https://m.weibo.cn/api/container/getIndex?type=uid&value=' + id

data = use_proxy(url, proxy_addr)

content = json.loads(data).get('data')

profile_image_url = content.get('userInfo').get('profile_image_url')

description = content.get('userInfo').get('description')

profile_url = content.get('userInfo').get('profile_url')

verified = content.get('userInfo').get('verified')

guanzhu = content.get('userInfo').get('follow_count')

name = content.get('userInfo').get('screen_name')

fensi = content.get('userInfo').get('followers_count')

gender = content.get('userInfo').get('gender')

urank = content.get('userInfo').get('urank')

print("微博昵称:" + name + "\n" + "微博主页地址:" + profile_url + "\n" + "微博头像地址:" + profile_image_url + "\n" + "是否认证:" + str(

verified) + "\n" + "微博说明:" + description + "\n" + "关注人数:" + str(guanzhu) + "\n" + "粉丝数:" + str(

fensi) + "\n" + "性别:" + gender + "\n" + "微博等级:" + str(urank) + "\n")

def get_weibo(id, file):

global pic_num

i = 1

while True:

url = 'https://m.weibo.cn/api/container/getIndex?type=uid&value=' + id

weibo_url = 'https://m.weibo.cn/api/container/getIndex?type=uid&value=' + id + '&containerid=' + get_containerid(

url) + '&page=' + str(i)

try:

data = use_proxy(weibo_url, proxy_addr)

content = json.loads(data).get('data')

cards = content.get('cards')

if (len(cards) > 0):

for j in range(len(cards)):

print("-----正在爬取第" + str(i) + "页,第" + str(j) + "条微博------")

card_type = cards[j].get('card_type')

if (card_type == 9):

mblog = cards[j].get('mblog')

attitudes_count = mblog.get('attitudes_count')

comments_count = mblog.get('comments_count')

created_at = mblog.get('created_at')

reposts_count = mblog.get('reposts_count')

scheme = cards[j].get('scheme')

text = mblog.get('text')

if mblog.get('pics') != None:

# print(mblog.get('original_pic'))

# print(mblog.get('pics'))

pic_archive = mblog.get('pics')

for _ in range(len(pic_archive)):

pic_num += 1

print(pic_archive[_]['large']['url'])

imgurl = pic_archive[_]['large']['url']

img = requests.get(imgurl)

f = open(path + weibo_name + '\\' + str(pic_num) + str(imgurl[-4:]),

'ab')  # 存储图片,多媒体文件需要参数b(二进制文件)

f.write(img.content)  # 多媒体存储content

f.close()

with open(file, 'a', encoding='utf-8') as fh:

fh.write("----第" + str(i) + "页,第" + str(j) + "条微博----" + "\n")

fh.write("微博地址:" + str(scheme) + "\n" + "发布时间:" + str(

created_at) + "\n" + "微博内容:" + text + "\n" + "点赞数:" + str(

attitudes_count) + "\n" + "评论数:" + str(comments_count) + "\n" + "转发数:" + str(

reposts_count) + "\n")

i += 1

else:

break

except Exception as e:

print(e)

pass

if __name__ == "__main__":

if os.path.isdir(path + weibo_name):

pass

else:

os.mkdir(path + weibo_name)

file = path + weibo_name + '\\' + weibo_name + ".txt"

get_userInfo(id)

get_weibo(id, file)

python爬取相册_如何用python实现爬取微博相册所有图片 - 收获啦相关推荐

  1. python爬实时数据_如何用python爬取实时更新的动态数据?

    爬虫实时更新 互联网是绝对豪爽的数据源.不幸的是,倘若没有轻易构制的CSV文献可供下载和说明,则绝大部门.倘若要从很众网站拘捕数据,则必要测验举办收集抓取. 倘若您照样一个初学者,请不要忧愁-正在数据 ...

  2. python爬虫抢火车票_如何用python写一个简单的12306抢票软件|python 爬火车票 教程...

    python 如果抓取验证码图片 类似12306的登录验证码图片 这个以前做次.最大的麻烦是码的识别算法的识别率太低.12306那种网站登陆错3次就限制你20分钟.所以除非你有33%以上的识别率否则不 ...

  3. python 登陆淘宝_如何用 Python 自动登录淘宝并保存登录信息?

    原标题:如何用 Python 自动登录淘宝并保存登录信息? 作者 | 猪哥 责编 | 伍杏玲 前段时间时间为大家讲解了如何使用requests库模拟登录淘宝,而今天我们将对该功能进行丰富.所以我们把之 ...

  4. python 矩阵运算 for循环_如何用 Python 科学计算中的矩阵替代循环

    展开全部 因为在Mathematica中使用循环确实是低效的.32313133353236313431303231363533e78988e69d8331333361313961..... 深层次的原 ...

  5. 用python处理excel表格_如何用python处理excel数据 | 用python处理excel表格数据类型

    python 读取EXCEL文件中的数据格式 扩展库 xlrd 读excle xlwt 写excle 直上搜就能下载 下载后使用 import xlrd 就可以读excle了 打开文件: xls = ...

  6. python 读取excel图片_如何用Python读取Excel中图片?

    公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...

  7. 怎么用python读取excel图_如何用Python读取Excel中图片?

    公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...

  8. python搭建自动化测试平台_如何用python语言搭建自动化测试环境

    原标题:如何用python语言搭建自动化测试环境 技术分享:基于Python语言的Web自动化测试环境搭建 近期发现很多初学者在学习自动化的过程当中,在环境安装环节总是出现问题,所以详细的出一篇环境搭 ...

  9. 如何制作python检查小软件_如何用Python制作整蛊小程序

    原标题:如何用Python制作整蛊小程序 下面的整蛊程序,千万不要发代码,否则就实现不了你整蛊的目的了.完成后一定要打包成一个exe程序,再发给朋友使用 . 1. 使用 pip install pyi ...

  10. python rest api 测试_如何用Python编写REST API的单元测试

    在过去的几个月中,正在从事一个名为B的项目.它是带有简单Web UI的徽章生成器,用于添加数据并生成PDF可打印徽章.B后端现在已转移到REST-API并测试REST-API中使用的功能,我们需要一些 ...

最新文章

  1. opensuse 安装java_OpenSUSE Leap 42.3 安装java(Oracle jre)
  2. Dalvik与JVM区别
  3. 【深度学习】基于Pytorch的softmax回归问题辨析和应用(一)
  4. C# 的EF框架怎么连接Oracle数据库
  5. 随机数文件,上传到hdfs的特定目录/logs下,用mr求和
  6. JavaScript 的内部字符编码是 UCS-2 还是 UTF-16
  7. 神经网络 权重文件 大小_神经网络中如何处理过拟合的问题
  8. 2021辽宁省大学生程序设计竞赛题解
  9. 二十二、K8s集群设置4-网络策略与校验和
  10. extjs中什么时候用{},什么时候用[]
  11. 计算机网络应用基础试题6,计算机网络应用基础试题
  12. Java图形界面框架构建
  13. 如何批量调整图片大小?
  14. Tableau基础 | 维度、度量、蓝色、绿色
  15. Cabbage教学(5)——条件体
  16. Python爬取微信公众号文章、点赞数
  17. 06年计算机竞赛,2006年数学建模校内竞赛结果
  18. word文档找不到smartart_图文详解Word文档插入SmartArt图形的方法
  19. 群晖服务器216j增加硬盘,群晖NAS提速大法:解决机械硬盘频繁同时读写的问题,有效提升硬盘寿命...
  20. 计算机音乐念诗之王,念诗之王怎么做出来的 念诗之王完整顺口溜

热门文章

  1. mysql 换算成百分比_MySQL计算百分比
  2. 是什么限制了你的成功?
  3. 小体积智能直流无刷伺服电机驱动控制器TMCM
  4. python3学习笔记---类
  5. 摩尔斯电码 — 摩尔斯密码
  6. fastadmin 配置阿里云邮箱SMTP 邮箱服务器(邮箱发件服务器)
  7. 自走棋冷知识之源码篇
  8. 客户价值度和活跃度建模
  9. 宏基Acer笔记本热销火热机
  10. 计算机专业—毕业设计题目大全