- · 《自动化应用》栏目设置[06/28]
- · 《自动化应用》收稿方向[06/28]
- · 《自动化应用》投稿方式[06/28]
- · 《自动化应用》征稿要求[06/28]
- · 《自动化应用》刊物宗旨[06/28]
气象信息在新浪微博自动发布的实现
作者:网站采编关键词:
摘要:1技术方案 使用新浪微博的途径有电脑网页、手机App客户端两种,电脑网页客户端是用户通过网页和服务器进行交互的过程,是通过HTTP协议进行的,因此可以利用Socket编程模拟HTTP会话过
1技术方案
使用新浪微博的途径有电脑网页、手机App客户端两种,电脑网页客户端是用户通过网页和服务器进行交互的过程,是通过HTTP协议进行的,因此可以利用Socket编程模拟HTTP会话过程,在程序中重复提交数据的过程就可以实现批量上传。模拟HTTP[1-3]会话过程的关键是保持会话,即在数据包头部附带相应的Cookie。在登录过程中,服务器会返回一系列的Cookie值,保存这些Cookie值,在提交数据时,需要用到这些Cookie值。软件使用C#语言实现,先抓取用户通过网页和服务器交互的所有数据包,分析交互过程中的数据包,将数据包分为2个部分,①登录过程的数据包;②上传气象信息的数据包。然后利用Socket模拟HTTP会话过程:和服务器建立连接,依次发送数据包,接收服务器的响应,依据响应进行相应的处理,下面将介绍具体的实现过程。
2实现过程
2.1 登陆参数算法
打开浏览器按F12打开开发者工具,通过浏览器协议分析器分析登陆数据包,可以看到登陆网页版新浪微博首先要访问,/sso/ entry=weibo,获取登录所需的加密参数nonce、pubkey、rsaky,通过分析js代码,可以找出加密算法RSAEn crypt,如图1所示。
图1密算法RSAEncrypt
找到js加密算法后,可以通过C#编程语言来运行js函数直接得出rsa算法的结果。
2.2 登陆新浪微博
访问
2.3 “上传“的图片和文字
通过网页代码分析工具可以找到上传新浪微博图文的url地址为“
图2上传文件的代码
新浪微博支持文字和图片的发送,上传图片只能每次一图,此限制是服务器设定的,我们也无法改变,图2中参数PostdataByte的值需要由图片文件转为byte数组,Image img = new Bitmap(图片路径);MemoryStreamstream=(stream,);BinaryReaderbr=newBinaryReader(stream);byte[]photo=(),参数PostDataType必须是,请求成功后服务器会返来pid值,访问链接
2.4 “气象信息”分类发送
每日所需发送的气象信息有“一日预报”、“七日预报”、“城市火险预报”、“道路交通预报”、“旅游景区预报”、“生活指数预报”共计6种,经过我们的测试发现,新浪微博限制了文件发送间隔,多个文件必须逐一间隔5秒发送,软件自动检测气象文件逐一自动发送。
3结束语
随着新技术的发展,智慧气象成为新气象主题,气象信息的发布手段多种多样,完全依靠人工编辑发送已成为过去,也无法跟随时代的发展,利用技术手段及时、多途径发布气象信息才能满足新时代人们日常生产、生活的需要,让气象更好的服务于民。
[1] 黄延炜,刘嘉勇.新浪微博数据获取技术研究[J].信息安全与通信保密,2013,(6):71~73,76.
[2] 陈智,梁娟,谢兵,等.新浪微博数据爬取研究[J].物联网技术,2016,6(12):60~63.
[3] 吴文辉,肖治庭.模拟HTTP会话实现批量数据上传[J].电脑编程技巧与维护,2011,(22):109~111.
1技术方案使用新浪微博的途径有电脑网页、手机App客户端两种,电脑网页客户端是用户通过网页和服务器进行交互的过程,是通过HTTP协议进行的,因此可以利用Socket编程模拟HTTP会话过程,在程序中重复提交数据的过程就可以实现批量上传。模拟HTTP[1-3]会话过程的关键是保持会话,即在数据包头部附带相应的Cookie。在登录过程中,服务器会返回一系列的Cookie值,保存这些Cookie值,在提交数据时,需要用到这些Cookie值。软件使用C#语言实现,先抓取用户通过网页和服务器交互的所有数据包,分析交互过程中的数据包,将数据包分为2个部分,①登录过程的数据包;②上传气象信息的数据包。然后利用Socket模拟HTTP会话过程:和服务器建立连接,依次发送数据包,接收服务器的响应,依据响应进行相应的处理,下面将介绍具体的实现过程。2实现过程2.1 登陆参数算法打开浏览器按F12打开开发者工具,通过浏览器协议分析器分析登陆数据包,可以看到登陆网页版新浪微博首先要访问,/sso/ entry=weibo,获取登录所需的加密参数nonce、pubkey、rsaky,通过分析js代码,可以找出加密算法RSAEn crypt,如图1所示。图1密算法RSAEncrypt找到js加密算法后,可以通过C#编程语言来运行js函数直接得出rsa算法的结果 登陆新浪微博访问 “上传“的图片和文字通过网页代码分析工具可以找到上传新浪微博图文的url地址为“ img = new Bitmap(图片路径);MemoryStreamstream=(stream,);BinaryReaderbr=newBinaryReader(stream);byte[]photo=(),参数PostDataType必须是,请求成功后服务器会返来pid值,访问链接 “气象信息”分类发送每日所需发送的气象信息有“一日预报”、“七日预报”、“城市火险预报”、“道路交通预报”、“旅游景区预报”、“生活指数预报”共计6种,经过我们的测试发现,新浪微博限制了文件发送间隔,多个文件必须逐一间隔5秒发送,软件自动检测气象文件逐一自动发送。3结束语随着新技术的发展,智慧气象成为新气象主题,气象信息的发布手段多种多样,完全依靠人工编辑发送已成为过去,也无法跟随时代的发展,利用技术手段及时、多途径发布气象信息才能满足新时代人们日常生产、生活的需要,让气象更好的服务于民。[参考文献][1] 黄延炜,刘嘉勇.新浪微博数据获取技术研究[J].信息安全与通信保密,2013,(6):71~73,76.[2] 陈智,梁娟,谢兵,等.新浪微博数据爬取研究[J].物联网技术,2016,6(12):60~63.[3] 吴文辉,肖治庭.模拟HTTP会话实现批量数据上传[J].电脑编程技巧与维护,2011,(22):109~111.
文章来源:《自动化应用》 网址: http://www.zdhyyzz.cn/qikandaodu/2021/0126/1039.html
上一篇:自动足部烘干机的设计
下一篇:基于组态的化肥原料配料系统的设计