语法最简单的微博通用爬虫weibo_crawler

weibo_crawle可以做轻度的微博数据采集。

一、支持爬虫

  • 用户信息抓取

  • 用户微博抓取(全量/指定时间段)

  • 用户社交关系抓取(粉丝/关注)

  • 微博评论抓取

  • 基于关键词和时间段(粒度到小时)的微博抓取

  • 微博转发抓取


二、安装

weibo_crawler-0.1-py3-none-any.whl下载后放置于桌面

Mac电脑执行

cd desktop
pip3 install weibo_crawler-0.1-py3-none-any.whl

Win电脑执行

cd Desktop
pip install weibo_crawler-0.1-py3-none-any.whl

文末有weibo_crawler-0.1-py3-none-any.whl获取方式


三、快速上手

weibo_crawler库的使用方法

from weibo_crawler import Profile, Follow, Weibos, Comments

3.1 个人简介

获取某用户个人简介

from weibo_crawler import Profile
import os

#如果程序失败,需要传入你的微博cookies
cookies = ''

# csv文件路径
csvfile = os.getcwd()+'/简介.csv'
prof = Profile(csvfile=csvfile, 
                delay=1, 
                cookies=cookies)

prof.get_profile(userid='1087770692') #陈坤微博的id

Run

{'nickname': '陈坤', 
'gender': '男', 
'province': '重庆', 
'brief_introduction': '莫失己道,莫扰他心。', 
'birthday': '0001-00-00', 
'vip_level': '7级送Ta会员', 
'authentication': '演员,代表作《龙门飞甲》《画皮》等,行走的力量发起者', 'labels': '演员'}


3.2 获取粉丝/关注列表

哪些微博用户关注了陈坤

from weibo_crawler import Follow
import os

#如果程序失败,需要传入你的微博cookies
cookies = ''

# csv文件路径
csvfile = os.getcwd()+'/fans.csv'
follow = Follow(csvfile=csvfile, 
                delay=1, 
                cookies=cookies)

#哪些微博用户关注了陈坤
follow.who_follow(userid='1087770692')

Run

{'uid1': '1879804794', 'uid2': '1087770692', 'crawl_time': '2021-04-30 18:24:40', 'relationship': '1879804794-follow-1087770692'}
{'uid1': '6371190854', 'uid2': '1087770692', 'crawl_time': '2021-04-30 18:24:40', 'relationship': '6371190854-follow-1087770692'}
{'uid1': '7602005193', 'uid2': '1087770692', 'crawl_time': '2021-04-30 18:24:40', 'relationship': '7602005193-follow-1087770692'}
{'uid1': '3227075870', 'uid2': '1087770692', 'crawl_time': '2021-04-30 18:24:40', 'relationship': '3227075870-follow-1087770692'}

陈坤关注了哪些微博用账号

#如果程序失败,需要传入你的微博cookies
cookies = ''

# csv文件路径
csvfile = os.getcwd()+'/chenkun_follow_who.csv'
follow = Follow(csvfile=csvfile, 
                delay=1, 
                cookies=cookies)

#哪些微博用户关注了陈坤
follow.follow_who(userid='1087770692')

Run

{'uid1': '1087770692', 'uid2': '7451895315', 'crawl_time': '2021-04-30 18:25:30', 'relationship': '7451895315-follow-1087770692'}
{'uid1': '1087770692', 'uid2': '1715351501', 'crawl_time': '2021-04-30 18:25:30', 'relationship': '1715351501-follow-1087770692'}
{'uid1': '1087770692', 'uid2': '1278932711', 'crawl_time': '2021-04-30 18:25:30', 'relationship': '1278932711-follow-1087770692'}
{'uid1': '1087770692', 'uid2': '1299491507', 'crawl_time': '2021-04-30 18:25:30', 'relationship': '1299491507-follow-1087770692'}


3.3 某微博下的评论

获取某条微博weibo_id里的评论信息

from weibo_crawler import Comments
import os

#如果程序失败,需要传入你的微博cookies
cookies = ''

# csv文件路径
csvfile = os.getcwd()+'/comments.csv'
coms = Comments(csvfile=csvfile, 
                delay=1, 
                cookies=cookies)

# weibo_id='IDl56i8av')
coms.comments(weibo_id='IDl56i8av')

Run

{'weibo_id': 'IDl56i8av', 'comment_uid': '2249872265', 'like_num': '82', 'create_time': '2020-04-14 23:44:51', 'content': '明天,你好!雷神山关门大吉', 'craw_time': '2021-04-30 18:33:13'}
{'weibo_id': 'IDl56i8av', 'comment_uid': '5458366215', 'like_num': '49', 'create_time': '2020-04-14 23:42:37', 'content': '晚安????疫情快点好起来吧', 'craw_time': '2021-04-30 18:33:13'}
{'weibo_id': 'IDl56i8av', 'comment_uid': '6577817093', 'like_num': '29', 'create_time': '2020-04-14 23:42:32', 'content': '跪求大家救救我们一家!', 'craw_time': '2021-04-30 18:33:13'}



获取多微博

获取某用户的所有微博、获取某话题指定日期的的各种微博数据

  • get_weibos_by_userid(userid='1087770692')

  • get_weibos_by_userid_and_date(userid='1087770692', startdate='2020-01-01', enddate='2020-12-31')

  • get_weibos_by_topic_and_date(topic='python', startdate='2020-01-01', enddate='2020-12-31')


3.4.1 get_weibos_by_userid

获取某指定用户的所有微博数据

from weibo_crawler.weibos import Weibos
import os

#如果程序失败,需要传入你的微博cookies
cookies = ''

# csv文件路径
csvfile = os.getcwd()+'/1087770692.csv'
WB = Weibos(csvfile=csvfile, 
            delay=1, 
            cookies=cookies)

# userid='1087770692'
WB.get_weibos_by_userid(userid='1087770692')


Run

{'uid': '1087770692', 'weibo_id': 'Kdiasmwfx', 'product': '', 'ratescore': 0, 'content': 'A组转B组,之后转回A。', 'like_num': '10820', 'repost_num': '8115', 'comment_num': '8665', 'create_time': '今天 13:57', 'crawl_time': '2021-04-30 18:37:53', 'device': '', 'img': None, 'raw_img': '', 'location': '', 'video_link': None, 'orinin_link': None}

{'uid': '1087770692', 'weibo_id': 'KcZQbvplr', 'product': '', 'ratescore': 0, 'content': '转发了\xa0山下学堂\xa0的微博:#表演与行为艺术##山下学堂# 2020新人班“美术馆计划”的两日,学员们来到@红砖美术馆 ,共同参观“詹姆斯·李·拜尔斯:#完美时刻# ”展览,并与红砖美术馆携手再现这位传奇艺术家的三件参与式行为表演作品。红砖美术馆高级策展人 Jonas Stampe 为每个作品指导。“缓慢、放松,你们这样很美。”他鼓励...全文\xa0[组图共18张]原图\xa0赞[218]\xa0原文转发[7107]\xa0原文评论[44]转发理由:转发微博', 'like_num': '8266', 'repost_num': '7082', 'comment_num': '7549', 'create_time': '04月28日 15:18', 'crawl_time': '2021-04-30 18:37:53', 'device': '', 'img': 'https://h5.sinaimg.cn/upload/2016/05/26/319/5337.gif', 'raw_img': 'https://weibo.cn/mblog/oripic?id=KcZQbvplr&u=5337', 'location': '', 'video_link': None, 'orinin_link': 'https://weibo.cn/comment/KcZpdwdlK?rl=1#cmtfrm'}

{'uid': '1087770692', 'weibo_id': 'KcQkm0cFm', 'product': '', 'ratescore': 0, 'content': '突然发现,一累了就找吃的视频看。完全下意识的,已经好一段时间了。', 'like_num': '21261', 'repost_num': '7766', 'comment_num': '11419', 'create_time': '04月27日 15:05', 'crawl_time': '2021-04-30 18:37:53', 'device': '', 'img': '//h5.sinaimg.cn/m/emoticon/icon/default/d_wabishi-816c4e8890.png', 'raw_img': 'https://weibo.cn/mblog/oripic?id=KcQkm0cFm&u=d_wabishi-816c4e8890', 'location': '', 'video_link': None, 'orinin_link': None}



3.4.2 get_weibos_by_userid_and_date

获取某指定用户指定日期范围内的微博数据

from weibo_crawler.weibos import Weibos
import os

#如果程序失败,需要传入你的微博cookies
cookies = ''

# csv文件路径
csvfile = os.getcwd()+'/1087770692date.csv'

WB = Weibos(csvfile=csvfile, 
            delay=1, 
            cookies=cookies)

# 某用户指定日期的微博数据
WB.get_weibos_by_userid_and_date(userid='1087770692', 
                                 startdate='2020-01-01', 
                                 enddate='2020-12-31')

Run

{'uid': '1087770692', 'weibo_id': 'Iquq5giZd', 'product': '', 'ratescore': 0, 'content': '分享图片 \xa0[组图共2张]原图', 'like_num': '37582', 'repost_num': '7136', 'comment_num': '7772', 'create_time': '2020-01-21 11:34:45\xa0来自绿洲APP', 'crawl_time': '2021-04-30 18:40:43', 'device': '绿洲APP', 'img': 'http://wx4.sinaimg.cn/wap180/40d61044gy1gb41ple6h0j20yi1azb29.jpg', 'raw_img': 'https://weibo.cn/mblog/oripic?id=Iquq5giZd&u=40d61044gy1gb41ple6h0j20yi1azb29', 'location': '', 'video_link': None, 'orinin_link': None}

{'uid': '1087770692', 'weibo_id': 'IqdeJlfr9', 'product': '', 'ratescore': 0, 'content': '过节几天要练练钢笔字了', 'like_num': '25958', 'repost_num': '5462', 'comment_num': '6298', 'create_time': '2020-01-19 15:50:05', 'crawl_time': '2021-04-30 18:40:43', 'device': '', 'img': None, 'raw_img': '', 'location': '', 'video_link': None, 'orinin_link': None}

{'uid': '1087770692', 'weibo_id': 'IphT4lwlZ', 'product': '', 'ratescore': 0, 'content': '生活是自己的不仅仅存在于别人的谈论中过好自己的随喜别人的', 'like_num': '44829', 'repost_num': '7008', 'comment_num': '6711', 'create_time': '2020-01-13 13:50:09', 'crawl_time': '2021-04-30 18:40:43', 'device': '', 'img': None, 'raw_img': '', 'location': '', 'video_link': None, 'orinin_link': None}



3.4.3 get_weibos_by_topic_and_date

获取指定话题、指定日期范围的微博

from weibo_crawler.weibos import Weibos
import os

#如果程序失败,需要传入你的微博cookies
cookies = ''

# csv文件路径
csvfile = os.getcwd()+'/1087770692date.csv'

WB = Weibos(csvfile=csvfile, 
            delay=1, 
            cookies=cookies)

# 某指定话题日期范围内的微博数据
WB.get_weibos_by_topic_and_date(topic='python', 
                                startdate='2020-01-01', 
                                enddate='2020-12-31')

Run

{'uid': '6438471311', 'weibo_id': 'InwK8nQZT', 'product': '', 'ratescore': 0, 'content': '虾尾拌面要去壳:明后两天本学畜将渡劫批判性思维python品牌传播轮番轰炸希望我可以苟下来', 'like_num': '0', 'repost_num': '0', 'comment_num': '0', 'create_time': '2020-01-01 23:58:44\xa0来自逢考必过的人', 'crawl_time': '2021-04-30 18:43:25', 'device': '逢考必过的人', 'img': 'https://h5.sinaimg.cn/upload/2016/05/26/319/5338.gif', 'raw_img': 'https://weibo.cn/mblog/oripic?id=InwK8nQZT&u=5338', 'location': '', 'video_link': None, 'orinin_link': None}

{'uid': '6023446153', 'weibo_id': 'InwJreRSg', 'product': '', 'ratescore': 0, 'content': '小小书染:2020年第一天就献给了Python真好!原图', 'like_num': '2', 'repost_num': '0', 'comment_num': '2', 'create_time': '2020-01-01 23:57:01\xa0来自nova4自拍极点全面屏', 'crawl_time': '2021-04-30 18:43:25', 'device': 'nova4自拍极点全面屏', 'img': '//h5.sinaimg.cn/m/emoticon/icon/default/d_hehe-0be7e6251f.png', 'raw_img': 'https://weibo.cn/mblog/oripic?id=InwJreRSg&u=d_hehe-0be7e6251f', 'location': '', 'video_link': None, 'orinin_link': None}

{'uid': '5815948537', 'weibo_id': 'InwHm8QV3', 'product': '', 'ratescore': 0, 'content': '坐中偶书:明天开始学Python原图', 'like_num': '0', 'repost_num': '0', 'comment_num': '0', 'create_time': '2020-01-01 23:51:53\xa0来自nova4自拍极点全面屏', 'crawl_time': '2021-04-30 18:43:25', 'device': 'nova4自拍极点全面屏', 'img': 'https://h5.sinaimg.cn/upload/2016/05/26/319/donate_btn_s.png', 'raw_img': 'https://weibo.cn/mblog/oripic?id=InwHm8QV3&u=donate_btn_s', 'location': '', 'video_link': None, 'orinin_link': None}



四、cookies

Weibo_crawler内置了一个cookies值,一般情况下cookies设置为空字符串即可;

如果程序跑不出来结果或报错,这时需要传入自己的微博cookies。

点击手机weibo  https://weibo.cn  , 登入账号密码后

  1. 打开浏览器开发者工具Network面板

  2. 刷新页面,找到含有weibo的任意网址,获取cookies



获取whl文件

weibo_crawler-0.1-py3-none-any.whl获取方式

转发 

Python数据挖掘与结构模型五一工作坊

至朋友圈集赞满30+

截图可加我的微信372335839, 也可留下公众号后台回复截图和邮箱,随后我会将whl文件分享给你。

精选文章系列视频|Python网络爬虫与文本数据分析
B站视频 | Python自动化办公

SciencePlots | 科研样式绘图库
使用streamlit上线中文文本分析网站

bsite库 | 采集B站视频信息、评论数据

texthero包 | 支持dataframe的文本分析包
爬虫实战 | 采集&可视化知乎问题的回答
reticulate包 | 在Rmarkdown中调用Python代码
plydata库 | 数据操作管道操作符>>
plotnine: Python版的ggplot2作图库
读完本文你就了解什么是文本分析

文本分析在经管领域中的应用概述  
综述:文本分析在市场营销研究中的应用

plotnine: Python版的ggplot2作图库
Wow~70G上市公司定期报告数据集

漂亮~pandas可以无缝衔接Bokeh  
YelpDaset: 酒店管理类数据集10+G  


“分享”和“在看”是更好的支持
### 回答1: 无法从weibo_crawler导入weibocrawler名称。这个错误通常是由于导入语句中的模块名称错误或模块内部不存在所需的名称导致的。要解决这个问题,首先需要检查导入语句是否正确,确保模块名称拼写正确。然后,确保导入的模块中包含名为weibocrawler的定义或类。如果模块中不存在该名称,可能需要查看文档或其他资源,以了解如何正确导入或获取所需的功能。另外,还可以尝试使用不同的导入语句或从其他模块中导入相应的功能。最后,确保模块已正确安装,并与当前环境兼容,这样才能在代码中使用。通过检查这些方面,可以解决无法导入指定名称的问题。 ### 回答2: 当我们在Python代码中使用"from weibo_crawler import weibocrawler"这行代码时,如果出现"cannot import name 'weibocrawler' from 'weibo_crawler"的错误提示,有以下几种可能的原因: 1. 导入的模块名称错误:检查一下是否确实存在名为weibo_crawler的模块,并且在该模块中是否确实定义了名为weibocrawler的类或函数。有可能在导入时,模块名或模块中的类/函数名被拼写错误或书写不一致。 2. 模块未安装:检查一下是否已经将weibo_crawler模块安装到了Python环境中。在Python中,我们需要先通过pip或其他方式安装模块,然后才能在代码中使用import导入。 3. 模块位置不正确:检查一下weibo_crawler模块所在的位置是否在Python解释器能够找到的路径中。Python会在特定的文件夹(例如sys.path中所列出的文件夹)中搜索要导入的模块,如果该模块所在的路径不在其中,就会导致无法导入该模块。 4. 循环导入:如果weibo_crawler模块内部依赖了其他模块,并且其他模块又依赖了weibo_crawler模块,就可能导致循环导入的问题。这种情况下,需要检查一下模块之间的依赖关系,可能需要重构代码以解决循环导入的问题。 综上所述,"cannot import name 'weibocrawler' from 'weibo_crawler"的错误提示可能由以上几个方面引起,可以根据具体情况逐一排查并解决。 ### 回答3: 如果在Python中导入模块时出现错误信息"cannot import name 'weibocrawler' from 'weibo_crawler",可能是因为在weibo_crawler模块中没有名为'weibocrawler'的函数或变量。 这个问题可能发生在以下几种情况下: 1. 'weibocrawler' 是一个拼写错误:请检查拼写是否正确,包括大小写。确保使用的名称与要导入的模块中的名称完全匹配。例如,如果模块中的名称是'wechatcrawler',则导入时应该写为'from weibo_crawler import wechatcrawler'。 2. 'weibocrawler' 是模块中的一个类、函数或变量名称,但该模块中未定义该名称:请确保在weibo_crawler模块中定义了名为'weibocrawler'的类、函数或变量。如果没有定义,可能需要从其他地方获取所需的代码,并将其添加到模块中。 3. 'weibocrawler' 是weibo_crawler模块的子模块:如果weibocrawlerweibo_crawler模块中的一个子模块,应该使用子模块的名称进行导入。例如,如果weibo_crawler包含一个名为weibocrawler的子模块,则应该写为'from weibo_crawler.weibocrawler import ...'。 4. 模块路径设置有误:请检查模块所在的目录路径是否正确,确保Python解释器能够找到该模块。如果模块不在系统路径中,需要在代码中指定正确的路径。 总之,这个错误可能是由于拼写错误、模块中未定义名称、子模块名称的问题或路径设置错误所致。检查这些问题,并确保导入语句正确,以解决此问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值