暑期实训项目(2)--推特爬虫数据处理
后端数据爬虫--Twitter
- 1. 爬虫的目标
- 2. 爬虫的思路
- 2.1 步骤
- 2.2 几个选择
- 2.2.1 Scarpy+ Selenium
- 2.2.2 没有使用Twitter API
- 3. 爬虫网站分析
- 3.1 网页结构分析
- 3.2 user数据
- 3.3 tweet数据
- 4. 创建Scrapy爬虫框架
1. 爬虫的目标
在Twitter网站中爬取到大量的用户,并得到用户的基本信息和发布的推文,可以实现在某一话题中爬取用户及推文和根据用户名爬取用户主页的功能。
2. 爬虫的思路
2.1 步骤
①模拟浏览器向推特搜索网页发送GET请求。
②在显示结果的网页中,模拟浏览器不断下拉网页加载新的推文,直至无法加载更多。
③获取此时网页的源码,定位并解析出推文内容和用户信息。
2.2 几个选择
2.2.1 Scarpy+ Selenium
Scrapy是爬取为网站数据、提取结构性数据而编写的应用框架,在使用Scarpy框架的时候,计划使用Xpath匹配来代替正则,这样可读性更好,同时使用通过管道的方式存入数据库,比较灵活。
选择Selenium的原因是模拟浏览器进行爬虫可以避免被网站检测为爬虫,如果使用requests库直接发起请求的话可能会被识别为爬虫,这里的方法是使用Chromedriver模拟浏览器请求,然后查看请求的headers,并将其设置为requests的GET方法的headers参数。
2.2.2 没有使用Twitter API
推特自身的API限制诸多,免费API每次请求只能得到100条,只能得到最近7天的推文,数据量太小。
3. 爬虫网站分析
3.1 网页结构分析
通过网页可以分析得到推文发布者的昵称,姓名,推文内容等信息,接下来进入到用户主页:
3.2 user数据
在用户主页中,可以去爬取用户的简介、居住地、关注者、喜好的话题等信息,通过开发者工具进行分析并把爬取的数据打出来:
data = json.loads(response.text)
data = json.loads(response.text)
# 爬取用户
for item in self.parse_user_item(data['globalObjects']['users']):yield item
# 爬取推文
for item in self.parse_tweet_item(data['globalObjects']['tweets']):yield item
# print("--------------data['globalObjects']['users']---------------")
# print(data['globalObjects']['users'])
# print("--------------data['globalObjects']['tweets']---------------")
# print(data['globalObjects']['tweets'])
注释中的print方法用于查看获取的json数据,如得到的用户数据:
可以利用的数据有用户id,用户昵称name,用户名字screen_name,用户位置location,用户简介description,用户头像url,用户的关注者friends_count,用户的粉丝following,用户注册时间created_at等内容。
3.3 tweet数据
对推文进行结果打印可以得到:
从中可得到推文的id,推文创建时间created_at,推文发布者的id,推文的内容full_text,推文点赞数favorite_count等信息。
4. 创建Scrapy爬虫框架
①TweetCrawler.py:负责爬取网页的内容,并解析返回的html内容,从中提取我们需要的数据。
②items.py:使用Item类来结构化数据,以方便对数据的操作。Item 类是一个简单的容器,用来暂存被抓取到的数据。
③middlewares.py:主要处理引擎和下载器之间的响应请求。
④pipelines.py:管道,负责清洗和保存数据。
⑤settings.py:配置文件,可对mysql和selenium进行设置。
暑期实训项目(2)--推特爬虫数据处理相关推荐
- 东北大学大一下暑期实训项目--活力长者社区(JAVAFX+scenebuilder)
前言 编译器:Eclipse IDE(2017) 运行环境:JRE 8 GUI开发工具:JavaFX 可视化界面构造插件:JavaFX Scene Builder 2.0(利用此插件完成对界面的布局操 ...
- 中国探月计算机考试时间,关于选拔2020年波兰罗兹大嫦娥三号登月时间
学暑期实习实训项目学员的通知...
具体如下: 一. 2020 年暑期学习项目简介 1. 项目名额:学生自主申报,如不遵照学院统一安排和临时退出,自费 10 名, 2. 项目费用: 900 欧元 / 人. 将严格遵循学院行程安排, 6. ...
- 暑期实训总结_李小倩
暑期实训总结 姓名:李小倩 学号:111307105 班级:CSDN-java班 年级:2011级 转眼间实训已经结束有些时间了,我想这个实训对于我们参与的每一个人来说都是一段美好快乐的记忆.记得距 ...
- 暑期实训心得及总结_史国旭
暑期实训心得及总结 姓名:史国旭 学号:111307168 班级:CSDN-java 年级:2011级 转眼间实训已经结束4天了,我想这个实训对于我们参与的每 ...
- 计算机暑期实训报告,计算机专业暑期实训报告总结范文
<计算机专业暑期实训报告总结范文>由会员分享,可在线阅读,更多相关<计算机专业暑期实训报告总结范文(4页珍藏版)>请在人人文库网上搜索. 1.计算机专业暑期实训报告总结范文 计 ...
- 暑期实训21组第一周个人工作总结
2022.6.21 参加暑期实训开题会议 下午13:30,参加由队长主持的队内的第一次全体线上会议,主要明确项目的内容.要点.技术.人员.分工等问题: 下午15:00,参加由英特尔的指导老师主持的答疑 ...
- 山西高平地域文化导入美术设计实训项目的实践
地域文化,是指某个地域的人们在特定的范围内,在自然环境的基础上,在长期的生产生活中创造的.人类活动的产物.山西高平是神农炎帝的故里,长平之战的发生地,是一个有着很深文化积淀的新兴城市,行政区域是国土面 ...
- 实训项目2Linux基本命令,实训项目2 Linux文件系统管理
实训项目2 Linux文件系统管理 发布时间:2011-06-24 15:51:10来源:红联作者:397778823 一. 实训目的: 1. 掌握磁盘分区的方法: 2. 掌握文件系统的建立.挂装.解 ...
- python实训项目-黑马程序员上海校区Python21期Django项目实训
黑马程序员上海中心 月薪一万只是起点 关注 晚上十点,一名名Python学生正在酣畅淋漓地撸代码,手指不间断地敲击着键盘,发出机械而清脆的声音. 各个小组在经过为期4天的django项目小组开发,终于 ...
最新文章
- 【Qt】使用QPalette设置按钮颜色时,不生效
- SQL--添加角色权限
- intellij idea (Android studio )外部程序 打开某扩展名(格式)
- 黑苹果睡眠无法唤醒_电脑睡眠后无法唤醒怎么办?
- 内存分段分页机制理解_深度干货 | 真棒! 20 张图揭开内存管理的迷雾,瞬间豁然开朗...
- 全球及中国印刷行业发展形势与十四五应用前景分析报告2022版
- alright alright alright
- Java动态代理详解(Proxy+InvocationHandler)
- 【CV】ECCV2020图像分割开源论文合集
- android设置输入框输入字符限制,Android里限制EditText控件可以输入字符内容的范围的方法...
- Google Nexus5在linux下刷原生安卓 android6.0
- JS----深拷贝和浅拷贝
- UVA 11423 - Cache Simulator (树状数组)
- 感悟:决定一个系统走势是多因素构成,而非单一因素决定
- java mockserver搭建_使用Moco搭建Mock Server教程
- Unity下载安装和Android打包成APK
- 计算机领域媒体的分类有,多媒体信息主要有几种类型
- 推荐几个有特点的公众号给你
- python的pillow给图片加文字_python PIL(pillow)图像处理-图片上添加文字
- 使用C语言 打印等腰三角形代码
热门文章
- mxGraph绘图区域使用鼠标滚轮实现放大/缩小
- QTableWidget表格控件的用法
- 地推项目大全_地推吧:app线上推广渠道大全(软件app上新地推)
- 微信小程序返回上一页 没有上一页的情况下返回首页
- 2019 码云 最流行的开源项目 TOP 50
- python 股票交易接口 github_GitHub - zhaoneng/vnpy: 基于python的开源交易平台开发框架...
- excel怎么设置自动计算_中建整理:160个Excel自动计算表,计算快效率高数据精准,超实用...
- 你想要的宏基因组-微生物组知识全在这(1907)
- 单词首字母大写,将每个单词的首字母改为大写后输出
- 用zookeeper体验监听服务器是否还活着