Python爬虫爬取新浪微博内容示例【基于代理IP】

发布时间:2020-09-07 10:08:14

来源:脚本之家

阅读:120

本文实例讲述了Python爬虫爬取新浪微博内容。分享给大家供大家参考,具体如下:

用Python编写爬虫,爬取微博大V的微博内容,本文以女神的微博为例(爬新浪m站:https://m.weibo.cn/u/1259110474)

一般做爬虫爬取网站,首选的都是m站,其次是wap站,最后考虑PC站。当然,这不是绝对的,有的时候PC站的信息最全,而你又恰好需要全部的信息,那么PC站是你的首选。一般m站都以m开头后接域名, 所以本文开搞的网址就是 m.weibo.cn。

前期准备

1.代理IP

网上有很多免费代理ip,如西刺免费代理IPhttp://www.xicidaili.com/,自己可找一个可以使用的进行测试;

2.抓包分析

通过抓包获取微博内容地址,这里不再细说,不明白的小伙伴可以自行百度查找相关资料,下面直接上完整的代码

完整代码:

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

import urllib.request

import json

#定义要爬取的微博大V的微博ID

id='1259110474'

#设置代理IP

proxy_addr="122.241.72.191:808"

#定义页面打开函数

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

#获取微博主页的containerid,爬取微博内容时需要此id

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

#获取微博大V账号的用户基本信息,如:微博昵称、微博地址、微博头像、关注人数、粉丝数、性别、等级等

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):

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')

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__":

file=id+".txt"

get_userInfo(id)

get_weibo(id,file)

爬取结果

更多关于Python相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

python爬去新浪微博_Python爬虫爬取新浪微博内容示例【基于代理IP】相关推荐

  1. python爬取微博评论_python爬虫抓取新浪微博数据

    需求分析 微博主页 抓取的内容包括:微博发布的时间,正文(仅提取文字),转发数,评论数,点赞数 抓取的内容 数据是怎么加载的 新浪微博的数据是用ajax异步下拉加载的,在chrome的调试模式下可捕捉 ...

  2. python爬表格数据_python爬虫,爬取表格数据

    python爬虫,爬取表格数据 python爬虫,爬取表格数据 python爬虫,爬取全国空气质量指数 编程环境:Jupyter Notebook 所要爬取的网页数据内容如下图 python爬虫代码及 ...

  3. python爬电影天堂_python爬虫爬取电影天堂电影

    python爬虫爬取电影天堂电影?本项目实现一个简单的爬虫,通过requests和BeautifulSoup爬取电影天堂电影信息,包括片名.年代.产地.类别.语言.海报链接和视频链接等内容.pytho ...

  4. python怎么爬网站视频教程_python爬虫爬取某网站视频的示例代码

    把获取到的下载视频的url存放在数组中(也可写入文件中),通过调用迅雷接口,进行自动下载.(请先下载迅雷,并在其设置中心的下载管理中设置为一键下载) 实现代码如下: from bs4 import B ...

  5. java怎么爬网易云_Python爬虫爬取网易云的音乐

    Python爬虫爬取网易云的音乐(学习笔记) 在开始之前,做一点小小的说明哈: 我只是一个python爬虫爱好者,如果本文有侵权,请联系我删除! 本文需要有简单的python爬虫基础,主要用到两个爬虫 ...

  6. python爬虫爬图片教程_Python爬虫爬图片需要什么

    Python爬虫爬图片需要什么?下面用两种方法制作批量爬取网络图片的方法: 第一种方法:基于urllib实现 要点如下: 1.url_request = request.Request(url) 2. ...

  7. python唐诗分析综合_Python爬虫抓取唐诗宋词

    一 说明 Python语言的爬虫开发相对于其他编程语言是极其高校的,在上一篇文章 爬虫抓取博客园前10页标题带有Python关键字(不区分大小写) 的文章中,我们介绍了使用requests做爬虫开发, ...

  8. python爬去音乐_Python爬虫——分析酷我音乐网站,并爬取歌曲-Go语言中文社区

    前言: 爬取数据,我们都先必须了解开发者工具的使用和网页的源代码,即Python导入第三方库的步骤. 开发者工具使用步骤: 使用F12或者Ctrl+Shirt+i打开开发者工具 说明: 1)先检查HT ...

  9. python解析网页数据_python爬虫——爬取网页数据和解析数据

    1.网络爬虫的基本概念 网络爬虫(又称网络蜘蛛,机器人),就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序. 只要浏览器能够做的事情,原则上,爬虫都能够做到. ...

最新文章

  1. 《编程之美》读书笔记19: 3.9 重建二叉树
  2. iOS8 Core Image In Swift:视频实时滤镜
  3. Linux Shell变量类型
  4. c语言按照姓名查询员工信息,输入10个职工信息,按号码大小排序,再使用查找函数找职工的姓…...
  5. Nginx整合tomcat,实现反向代理和负载均衡
  6. 安卓案例:绘制文本图形图像
  7. 2021年终总结2022未来展望——人生天地之间,若白驹过隙,忽然而已
  8. Go语言sync包的Pool和Cond
  9. RS报内存错误XQE-ROL-0183
  10. Python数据分析、挖掘常用工具
  11. 总时差与自由时差的计算
  12. ajax 传参json字符串
  13. 【已解决】抖音如何取消关注已注销的账户
  14. Python爬虫——Ajax爬取今日头条街拍美图
  15. 格兰杰因果 Granger causality
  16. [MATLAB]关于SOR迭代计算其次线性方程组的数值解
  17. 服务器存储系统的模式,服务器的三种存储方式
  18. Linux gpg命令
  19. session和token鉴权
  20. 许奔创新社-第25问:创新者的刻意练习怎么做?

热门文章

  1. 新应用——信息化财务管理,一站式满足多个需求
  2. Luckysheet导出excel
  3. 安卓(Android)手机如何安装APK?
  4. 中国自主建成世界口径最大的大视场望远镜
  5. 麻雀爱上凤凰在线播放,麻雀爱上凤凰详细剧情
  6. mysql 免安装版配置
  7. 实现JSON在线美化(格式化)、JSON转CSV、CSV转XML工具-toolfk程序员工具网
  8. Linux下deb包和rpm包区别
  9. 国外有python专业的大学_有哪些国外大学非常容易申请?
  10. ArcGIS中拓扑规则英文对照说明