python爬虫如何爬取微博粉丝数据

这篇文章主要介绍了python爬虫如何爬取微博粉丝数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

python可以做什么

Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂、容易入门、功能强大,在许多领域中都有广泛的应用,例如最热门的大数据分析,人工智能,Web开发等。

python爬虫如何爬取微博粉丝数据

现如今,微博成为大多数追星族追星的渠道之一,通过超话打卡,微博打榜,控评等维护自己的偶像。而品牌方会根据明星粉丝流量选取合适的代言人或活动嘉宾,微博中的粉丝数据可以很简单的分析出。

1、自动登录微博

driver=webdriver.Chrome(driver_path)#打开Chrome
driver.maximize_window()#将浏览器最大化显示
driver.get(weibo_url)#打开微博登陆页面
time.sleep(10)#加载页面需要时间,延时10s来确保页面已加载完毕
time.sleep(2)
driver.find_element_by_name("username").send_keys(username)##输入用户名
driver.find_element_by_name("password").send_keys(password)##输入密码
driver.find_element_by_xpath("//a[@node-type='submitBtn']").click()##点击登录按钮

2、获取cookie并将返回的Cookies数组转成微博需要的cookie格式

forxinrange(len(cookies)):
value=cookies[x]['name']+"="+cookies[x]['value']+";"
cookie=cookie+value
returncookie

3、利用BeautifulSoup库进行解析html操作

headers['Cookie']=cookie
info_response=requests.get('http://s.weibo.com/user/'+names_list[x],headers)#微博搜索的页面url
info_soup=BeautifulSoup(info_response.text,'html5lib')#利用BeautifulSoup库进行解析html操作
info_soup=get_html(info_soup,"pl_user_feedList")

4、找到用户信息的html

weibo_info=info_soup.find_all('a',attrs={"class":"W_linkb","target":"_blank"})#找到用户信息的html
id=weibo_info[0].get('href')#用户id
subs_size=weibo_info[0].string#关注数
fans_size=weibo_info[1].string#粉丝数
contents_size=weibo_info[2].string#微博数
subs_size=int(re.sub("\D","",subs_size))#只取出数字,其它的不管用,下面同理
fans_size=int(re.sub("\D","",fans_size))
contents_size=int(re.sub("\D","",contents_size))
id=int(re.findall('\d+',id)[0])
return[subs_size,fans_size,contents_size,id]

5、进行爬取

if__name__=='__main__':
browser=WeiboFansCrawler()
browser.login()

#明星列表
star_lists=['谢娜','何炅','Angelababy','杨幂','陈坤','赵薇','姚晨',
'林心如','邓超','郭德纲','林志颖','张小娴','赵丽颖','范冰冰',
'贾乃亮','唐嫣','胡歌','陈乔恩','王力宏','黄晓明','文章同學',
'刘亦菲','陈羽凡']

#若本地缓存中没有,则在线获取ID
iflen(browser.stars)==0:
forstarinstar_lists:
browser.get_page_id(star)

#ID缓存到本地
withopen('star_id.txt','w')asf:
f.write(str(browser.stars))

#获取主页数据
browser.get_fan_cnt()
browser.get_home_data()
browser.dump_home_data()

#获取并缓存数据到本地
loop=0
whileTrue:
browser.get_fans_data()
browser.dump_fans_data()
loop+=1
ifloop>20:
break
time.sleep(100)

print(browser.stars)
print(browser.data)

感谢你能够认真阅读完这篇文章,希望小编分享的“python爬虫如何爬取微博粉丝数据”这篇文章对大家有帮助,同时也希望大家多多支持恰卡编程网,关注恰卡编程网行业资讯频道,更多相关知识等着你来学习!

发布于 2021-05-10 20:34:22
收藏
分享
海报
0 条评论
224
上一篇:使用python怎么制作一个猜数字游戏 下一篇:python中WSGI的工作原理是什么
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码