python爬虫如何爬取微博粉丝数据
这篇文章主要介绍了python爬虫如何爬取微博粉丝数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
python可以做什么
Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂、容易入门、功能强大,在许多领域中都有广泛的应用,例如最热门的大数据分析,人工智能,Web开发等。
现如今,微博成为大多数追星族追星的渠道之一,通过超话打卡,微博打榜,控评等维护自己的偶像。而品牌方会根据明星粉丝流量选取合适的代言人或活动嘉宾,微博中的粉丝数据可以很简单的分析出。
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爬虫如何爬取微博粉丝数据”这篇文章对大家有帮助,同时也希望大家多多支持恰卡编程网,关注恰卡编程网行业资讯频道,更多相关知识等着你来学习!
推荐阅读
-
Python中怎么动态声明变量赋值
这篇文章将为大家详细讲解有关Python中怎么动态声明变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中变量的存储原理是什么
-
Python中怎么引用传递变量赋值
这篇文章将为大家详细讲解有关Python中怎么引用传递变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中怎么获取程序执行文件路径
python中怎么获取程序执行文件路径,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的...
-
Python中如何获取文件系统的使用率
Python中如何获取文件系统的使用率,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴...
-
Python中怎么获取文件的创建和修改时间
这篇文章将为大家详细讲解有关Python中怎么获取文件的创建和修改时间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读...
-
python中怎么获取依赖包
今天就跟大家聊聊有关python中怎么获取依赖包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据...
-
python怎么实现批量文件加密功能
-
python中怎么实现threading线程同步
小编给大家分享一下python中怎么实现threading线程同步,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!...
-
python下thread模块创建线程的方法
本篇内容介绍了“python下thread模块创建线程的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来...