- 9
- 0
- 约2.66千字
- 约 6页
- 2018-10-27 发布于福建
- 举报
微博爬虫研究和实现
微博爬虫研究和实现
摘 要 研究了微博爬虫程序的4个关键模块:模拟登录、页面抓取、页面解析、任务调度。介绍了模拟登录的三种方法,通过账号密码登录、使用Cookie登录、使用第三方账号登录,并且探讨了三者登录方法的优缺点。探讨了HTMLParser和正则表达式在解析微博页面时的运用方法和原则。提出了微博搜索爬虫的任务调度基本算法并且在此基础上进行改进增加了任务调度优化算法。在这些研究的基础上实现了一个微博搜索爬虫程序,该程序可以针对新浪微博和搜狐微博经关键词搜索的页面进行爬取。
关键词 微博;搜索;爬虫;模拟登录
中图分类号:TP309 文献标识码:A 文章编号:1671-7597(2013)22-0054-01
2006年,美国网站“Twitter”推出了微博客服务,Twitter作为一个边缘项目诞生。2009年8月新浪推出微博产品,使用人数迅速增长,是目前最有影响力和最受关注的微博网站。微博使用的人数越来越多影响越来越大,微博为反腐、揭露社会恶行、声张正义提供了良好的渠道,然而微博仅仅是一个工具,好人可以用它做好事,坏人也可能用它做坏事。微博中不乏一些仇视社会的人或反动分子散步谣言蛊惑大众,影响社会稳定和谐。因此有必要对微博中的敏感内容进行监控,及时掌握舆情动态做到早发现早纠正。
1 微博爬虫的结构和流程
首先管理中心发布配置文件,任务调度模块读取配置文件并开启多个线程调用页面抓取模块,页面抓取模块首先模拟登录微博网站,然后从微博服务器端获取页面源代码,之后交给页面解析模块解析入库。去重模块维护一个去重数据库,去重数据库中存储已爬取的最新微博的时间,任务调度模块根据该数据就可以避免重复爬取,页面解析模块也可以避免重复解析。
2 模拟登录
搜狐微博的搜索页面只有用户登录之后才可以访问,因此如果不模拟登录爬虫程序虽然访问了正确的URL但是仍然爬不到想要的内容。新浪微博的搜索页面虽然不需要登录就可以访问,但是新浪微博的搜索页面有访问频率限制机制,每个账号平均30s访问一次,超过这个频率就会返回验证码,通过使用多个账号可以提高爬取效率,而这也需要模拟登录。
研究和实现模拟登录要使用的主要工具是HttpClient和Httpfox。HttpClient是Java的一个开源包,用于模拟一个浏览器客户端的功能。Httpfox用来抓取浏览器和服务器之间通信的协议数据以分析微博网站的登录流程和传递的参数。
3 页面爬取
新浪微博搜索页面的URL形式为:http:///weibo/asdfxsort=timepage=2,xsort=time表示实时搜索,即搜索结果按时间排序,page=2表示搜索结果的第二页,asdf是搜索的关键词,通过改变这些参数的值我们就可以得到想要的结果。搜狐微博搜索页面的URL形式为,http:///twsearch/twSearch?key=asdfpageNo=2。其中key的值是搜索的关键字,pageNo的值是搜索结果的页码,默认是实时搜索。按照上面的URL形式结合爬取的任务构造URL就可以爬取需要的内容。
4 页面解析
页面解析使用的工具主要是HTMLParser开发包和正则表达式。HTMLParser可以根据标签和标签属性的值过滤HTML文档,也可以根据DOM的组织结构获取某个元素的父节点或者子节点,比如,可以使用HTMLParser把一页中的微博区分开来。正则表达式则根据正则表达的值摘取指定内容中需要的内容,比如,有些字段值含在超链接里面,只能使用正则表达式摘取。两者各有所长,把两者结合起来可以很好的解析出微博数据。
新浪微博的解析方法表5-1,以userid字段内容的获取为例,在…之间的内容中使用正则表达式(?=uid=)(\\d+)(?=)即可获取userid的值。
5 任务调度
任务调度模块主要解决如何高效地爬取多个任务问题。影响微博爬虫效率主要有3个方面的因素。
1)访问频率的限制,由于限制是针对账号的,所以可以使用多个账号提高爬虫效率。
2)串行爬取带来的问题,如果是串行爬取,首先爬完第一页后再爬第二页,在这段时间内微博会有更新,爬的第二页中就会包含之前爬的第一页的内容,极端情况下第二页的内容全是第一页的内容,解决办法就是并行爬取,一次开50个线程,把50页全部爬下来。
3)并行爬取带来的重复爬取问题,第一轮爬取50页完毕后第二轮再爬取50页,而第一轮至第二轮可能只更新了2页内容,那么第二轮爬取就有48页是无效的。
为了解决前两个问题,提出了调度的基本算法,程序软件开始运行时,爬虫检测检测线程首先启动,读取上次程序退出时的任务列表以保证工作的延续性,然后开启新浪调度线程和搜狐调
您可能关注的文档
- 当前大学生消费行为分析和对策研究.doc
- 当前央企纪委反腐倡廉工作机制和模式初探.doc
- 当前大学生生态意识现状调查和分析.doc
- 当前女大学生政治参和现状和对策.doc
- 当前女大学生性行为分析和性教育策略.doc
- 当前学校以人为本管理理论和实践研究.doc
- 当前安徽省实体经济发展变化和高校毕业生就业研究.doc
- 当前宏观经济形势分析和财政政策取向.doc
- 当前宏观金融形势和对策.doc
- 当前宜昌市大气污染防治和管控浅析.doc
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
最近下载
- CAD软件:CATIA二次开发_CATIAVBA编程基础.docx VIP
- 2025 国家电投 新能源区域化管理实施方案.docx VIP
- 基于 CNN-BiLSTM 的中短期电力负荷预测.docx VIP
- 乘运合同纠纷案代理词吴一诉西安汽车客运有限公司客运合同纠纷案.docx VIP
- 机械设计软件:CATIA二次开发_(8).CATIAVBA高级编程技巧.docx VIP
- 佛教戒律论文开题报告.docx VIP
- 2025春人教版三年级下册英语Unit 2 Expressing yourself Part B Read and write 课件.pptx VIP
- CAD软件:CATIA二次开发_(6).CATIAVBA高级编程技巧.docx VIP
- 火电项目可行性报告.ppt VIP
- 机械设计软件:CATIA二次开发_(3).CATIAVBA编程入门.docx VIP
原创力文档

文档评论(0)