python爬去新浪微博_使用python抓取新浪微博数据
数极客,拥有16种数据分析模型的新一代用户行为分析平台! 本篇文章是python爬虫系列的第四篇,介绍如何登录抓取新浪微博的信息。并对其中的关键内容进行提取和清洗。
开始前的准备工作 首先是开始之前的准备工作,与前面的文章相比,我们除了导入库文件,还把设置登录页URL,以及登录用户密码也放在了准备工作中。下面分别来说明。 导入所需的库文件,第一个是requests,用于请求和页面抓取,第二个是re正则库,用于从页面的代码中提取所需要的信息。第三个是pandas库,用来进行拼表以及数据导出。 #导入requests库(请求和页面抓取) import requests #导入正则库(从页面代码中提取信息) import re #导入pandas库(用于创建数据表和导出csv) import pandas as pd 开始抓取前,先找到新浪微博的登陆页面地址,PC端的页面内容较多,我们选择通过移动端页面登陆微博。地址是http://m.weibo.cn/,点击登陆后,跳转到登陆页面地址https://passport.weibo.cn/signin/login,这是我们要提交用户名和密码进行登陆的地址。此外还需要找到要抓取页面的URL地址。这里我们抓取“蓝鲸碎碎念”的微博首页。http://weibo.com/askcliff/home
#设置登陆用户名和密码 payload = { ‘username’: ‘用户名’, ‘password’: ‘密码’} #微博登陆页URL url1=’https://passport.weibo.cn/signin/login’ #微博内容抓取页URL url2=’http://weibo.com/askcliff/home’ 准备工作完成后,还需要对爬虫进行伪装,下面是具体的步骤和内容。
将爬虫伪装成浏览器 首先是设置头文件信息,里面包括浏览器的信息和字符编码以及引荐来源信息等等。这些信息的获得方法请参考本系列第三篇文章的内容。 #设置请求头文件信息 headers = {‘User-Agent’:’Mozilla/5.0 (Windows NT6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11′, ‘Accept’:’text/html;q=0.9,*/*;q=0.8′, ‘Accept-Charset’:’ISO-8859-1,utf-8;q=0.7,*;q=0.3′, ‘Accept-Encoding’:’gzip’, ‘Connection’:’close’, ‘Referer’:’http://www.baidu.com/’ } 设置Cookie的内容,获得cookie值的内容也请参考第三篇文章的内容。唯一的不同在于需要在登陆状态下查看cookie值并进行保存。Cookie中会保存登陆信息。 #设置Cookie的内容 cookie={‘ALF’:’1512025918′, ‘Apache’:’5582079329023.459.1480472083206′,’SCF’:’AoVcrse87P6zmMtZKsEug5bAAo_H6Zt17MI3RlrtRpA4qlvNTTnENdzBgdAiYtXpxqNqfUnrc4z9taUndzaGr9c.’, ‘SINAGLOBAL’:’2194771417416.632.1423499773609′, ‘SSOLoginState’:’1480472583′, ‘SUB’:’_2A251OgvvDeTxGedI61YV-C_EyD6IHXVWTnonrDV8PUNbmtANLRXfkW-bhQmK-cEZIcxdomJO1Yzg52KkoQ..’,’SUBP’:’0033WrSXqPxfM725Ws9jqgMF55529P9D9WWgwwO53bYmTfR9ipEOyk5q5JpX5K2hUgL.Fo2cehBX1h2Re0z2dJLoIEXLxKnL1KeL1-BLxK.LBozLBonLxKMLBKzL12-LxKMLBKzL12-LxK-LB.qLBo-t’, ‘SUHB’:’02Me2StsrIXMMi’, ‘ULV’:’1480472083473:198:8:1:5582079329023.459.1480472083206:1479779756603′, ‘UOR’:’www.wpdaxue.com,widget.weibo.com,www.baidu.com’, ‘WBStorage’:’2c466cc84b6dda21|undefined’, ‘WBtopGlobal_register_version’:’e91f392a3df0305e’, ‘YF-Page-G0′:’ee5462a7ca7a278058fd1807a910bc74’, ‘YF-Ugrow-G0′:’3a02f95fa8b3c9dc73c74bc9f2ca4fc6’, ‘YF-V5-G0′:’35ff6d315d1a536c0891f71721feb16e’, ‘_T_WM’:’8519d55f44e2d02f81931ae8c417a1b1′, ‘__gads’:’ID=3ca23266e2f80acc:T=1423541337:S=ALNI_MbTV-7G_42zCQkplHbiQUzrDs36Zg’, ‘_ga’:’GA1.2.1810133914.1425401997′, ‘_s_tentry’:’www.baidu.com’, ‘login_sid_t’:’01055f2ea0a097fc1512f94fbc6b0c88′, ‘lzstat_uv’:’1488026467799833128|3200746′, ‘un’:’139******03′, ‘wvr’:’6′} 设置完headers和cookie信息后,就可以开始进行登陆并抓取页面信息了。
抓取微博信息 首先设置会话对象,保证每次页面请求都能保留cookie信息,换句话说就是每次请求都是登陆状态。然后以post形式向微博的登陆页面提交用户名和密码进行登陆。登录成功后,请求真正需要抓取的页面地址,并进行内容编码。这里抓取的是”蓝鲸碎碎念”的微博首页。 #设置一个会话对象 s = requests.Session() #以post形式提交登陆用户名和密码 s.post(url=url1, data=payload, headers=headers) #提交请求获取要抓取的页面信息 r=requests.get(url=url2, cookies=cookie, headers=headers) #获取页面的内容信息 html=r.content #对页面内容进行编码 html=str(html, encoding = “UTF-8”) #查看页面内容 html
提取信息并进行数据清洗 抓取完页面后,我们使用正则对页面中的信息进行提取,这里提取两个信息,第一是用户昵称。第二是用户性别。 首先使用正则提取用户昵称,然后用if判断并排除重复信息,得到用户的昵称字段。 #提取微博昵称信息 nickname=re.findall(r’nickname=(.*)’,html) #清洗微博用户昵称 nickname_1=[] for i in nickname: if not”gender” in i: nickname_1.append(i)
同样的方式提取用户性别,先使用正则提取,然后通过判断排除重复信息获得微博用户性别字段。 #提取微博用户性别 gender=re.findall(r’gender=(.*)”‘,html) #清洗微博用户性别 gender_1=[] for i in gender: if not”&” in i: gender_1.append(i)
生成数据表并导出数据 使用pandas库将微博用户昵称和性别两个字段拼成数据表。并导出为csv格式的文件,以便进行后续的统计和分析工作。 #生成数据表 weibo=pd.DataFrame({‘nickname’:nickname_1,’gender’:gender_1})
#导出为csv文件 weibo.to_csv(‘weibo.csv’) 数极客是新一代用户行为分析与数据智能平台,支持用户数据分析、运营数据分析、留存分析、路径分析、漏斗分析、用户画像、SEM数据分析等16种分析模型的数据分析产品,支持网站统计、网站分析、APP统计、APP分析等分析工具,以及会员营销系统和A/B测试工具等数据智能应用,支持SAAS和私有化部署,提升用户留存和转化率,实现数据驱动增长!
数极客是新一代用户行为分析与数据智能平台,支持用户数据分析、运营数据分析、留存分析、路径分析、漏斗分析、用户画像、SEM数据分析等16种分析模型的数据分析产品,支持网站统计、网站分析、APP统计、APP分析等分析工具,以及会员营销系统和A/B测试工具等数据智能应用,支持SAAS和私有化部署,提升用户留存和转化率,实现数据驱动增长!
【独家稿件及免责声明】本站原创文章如需转载请联系我们,未经书面许可禁止转载,本站转载文章著作权归原作者所有,如有侵权请联系:。
python爬去新浪微博_使用python抓取新浪微博数据相关推荐
- Python,网络爬虫selenium与pyautogui抓取新浪微博用户数据
Python,网络爬虫selenium与pyautogui抓取新浪微博用户数据 不需要登陆新浪微博账户,直接运行就可以通过python爬虫爬取新浪微博用户数据.本例selenium与pyautogui ...
- Python网络爬虫,pyautogui与pytesseract抓取新浪微博数据,OCR
Python网络爬虫,pyautogui与pytesseract抓取新浪微博数据,OCR方案 用ocr与pyautogui,以及webbrowser实现功能:设计爬虫抓取新浪微博数据,比如,抓取微博用 ...
- python爬携程_用python selenium抓取携程信息
最近在学习selenium,遇到一个很奇怪的问题,debug了半天还是没弄明白,我是在测试抓取携程网站的机票信息 我的代码: # -*- coding: utf-8 -*- from selenium ...
- python爬房源信息_用python爬取链家网的二手房信息
题外话:这几天用python做题,算是有头有尾地完成了.这两天会抽空把我的思路和方法,还有代码贴出来,供python的初学者参考.我python的实战经历不多,所以代码也是简单易懂的那种.当然过程中还 ...
- python爬视频下载_爬虫 | Python下载m3u8视频
参考资料: # 配置环境 import requests,re import sys,time import os import numpy as np import glob work_dir = ...
- python代码去马赛克_十行python代码教你如何去除万恶的,如s一样的马赛克
世界上有一种东西,叫作马赛克,不知道困扰了多少痴男怨女.小编新get到一个技能,忍不住拿出来秀一秀. 小编这几天的了解其实水印和马赛克的原理是一样的,都是覆盖.一般是去不了的,那么这个技术来了,请看~ ...
- python 爬虫课程推荐_关于递归抓取的课程推荐
Python爬虫包 BeautifulSoup 递归抓取实例详解概要:爬虫的主要目的就是为了沿着网络抓取需要的内容.它们的本质是一种递归的过程.它们首先需要获得网页的内容,然后分析页面内容并找到另一个 ...
- python爬贴吧回复_Python爬虫——抓取贴吧帖子
对珊瑚老哥保证了自己会尽量补档动画MTV吧的资源,有空应该研究下爬虫了. 不要在意头图,我不会假借各位对某个动漫的爱好然后坑人的.无论是电磁炮吧主那种拿电磁铁糊弄人的奸商,还是逸站靠小林做幌子卖收费破 ...
- python 爬网页通知_用Python实现一个爬取XX大学电费通知的小脚本
内容简要 1分析网站 2简单爬取 3进阶自定义爬取 4保存进数据库 学校基础设施太差,宿舍电量过低提醒虽然贴在楼下,但是作为低头一族,经常忘记看提醒导致宿舍酣战时突然黑屏,为了避免这种尴尬的场景以及强 ...
- python淘宝爬虫_简单的抓取淘宝图片的Python爬虫
写了一个抓taobao图片的爬虫,全是用if,for,while写的,比较简陋,入门作品. 从网页http://mm.taobao.com/json/request_top_list.htm?type ...
最新文章
- python 多种图片数据格式互转
- java9新特性-16-Deprecated的相关API
- 后台开发经典书籍--Linux多线程服务端编程:使用muduo C++网络库
- iOS - Quartz 2D 画板绘制
- 关于单车创新的一两点思考
- springMVC九大组件及一次请求流程
- 获得最新纪录 sql
- 【CASS精品教程】Win7+CAD2008+CASS9.1(含CASS3D)完美安装教程(附完整软件安装包下载)
- laydate时间控件有时候无效_新角度,如何无效没用地听课
- python文件批量重命名以数字~n的方式重命名_利用Python对文件进行批量重命名
- unix grep命令_Linux / UNIX中的Grep命令
- 百度地图手机端单触点单击和长按事件,解决部分手机(小米手机)地图单击事件失效,多触点、拖动依然触发长按的bug...
- Understanding COM Apartments
- WindowsXP_KB909667_x86_ENU
- Android破解学习之路(十五)—— 【Unity3D】洛菲斯的呼唤(Lophis roguelike)无限金币(道具)的实现 破解
- 完美世界hr给大家的简历修改和面试的建议
- 计算机组装考核记录表,电脑组装与维护考核方案.doc
- (附源码)springboot社区文明养宠平台 毕业设计 231609
- python4(循环)
- 如何让DIV元素永远居中显示