【Twitter爬虫】Twitter网络爬虫

利用selenium爬取Twitter

从2月9日起,Twitter不再支持免费访问Twitter API,继续使用Twitter API支付较高的费用。下面将介绍一种绕过Twitter API爬取推文的方式

Selenium Webdriver框架

首先介绍一下Selenium Webdriver,这是一款web自动化测试框架,可以利用它在web浏览器上模拟。下面演示下在python中如何引入selenium模块

from selenium import webdriver

实例化配置对象

options = webdriver.ChromeOptions()

配置对象开启无界面模式

options.add_argument("--headless")

实例化带有配置对象的driver对象

driver = webdriver.Chrome('chromedriver', options=options)

进入Twitter页面

Twitter首页 Twitter首页

driver.get('https://twitter.com/home')

登陆Twitter

先在网页上登陆自己的twitter账号,然后把cookies取出来并

cookies=[] #你的cookies
for cookie in cookies:driver.add_cookie(cookie)

接下来就可以自由访问twitter啦

爬取Twitter

url = f"https://twitter.com/search?q=hello&src=typed_query"
driver.get(url)

利用BeautifulSoup对网页进行分析

from bs4 import BeautifulSoup
html = driver.page_source
soup = BeautifulSoup(html, "html.parser")

F12查看网页源码,可以看到每条推文的内容都写在红框标出来的区域里面
![在这里插入图片描述](https://img-blog.csdnimg.cn/f3e2d0857a0c40dc858f3c10b2f73b13.png
因此,我们先找出所有为这个属性的元素

tweets = soup.find_all("div", {'data-testid': "cellInnerDiv"})

然后我们再继续找推文内容的属性
在这里插入图片描述
提取推文内容

for tweet in tweets:content = container.find('div', {'data-testid': "tweetText"}).textprint(content)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/4384.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R+VIC 模型融合实践技术应用及未来气候变化模型预测

目前,无论是工程实践或是科学研究中都存在很多著名的水文模型如SWAT/HSPF/HEC-HMS等。虽然,这些软件有各自的优点;但是,由于适用的尺度主要的是中小流域,所以在预测气候变化对水文过程影响等方面都有所不足。 VIC模型…

Web服务器群集:部署Tomcat

目录 一、理论 1.Tomcat 2.JDK 3.Tomcat安装 4.Tomcat优化 5.Tomcat虚拟主机设置 二、实验 1.JDK安装 2.Tomcat安装 3.Tomcat优化 4.Tomcat 虚拟主机配置 三、总结 一、理论 1.Tomcat (1)概念 Tomcat服务器是一个免费的开放源代码的Web应用…

UE5 读写本地JSON,发送HTTP请求(get)

UE5 读写本地JSON,发送HTTP请求(get) 没有使用插件,就用UE提供的库开发(推荐使用插件VaRest在虚幻商城里有) PCHUsage PCHUsageMode.UseExplicitOrSharedPCHs;PublicDependencyModuleNames.AddRange(new …

vue 启动项目报错:TypeError: Cannot set property ‘parent‘ of undefined异常解决

场景:从git上面拉下来一个项目 npm i 下载完依赖以后 npm run serve 去运行项目的时候 报错TypeError: Cannot set property ‘parent’ of undefined 如图所示 原因:首先排查发现判断得出是less解析失败导致 但是经过长时间的查询解决方案发现是因为v…

DAY39——动态规划part2

1.考虑障碍在起点和终点的特殊状况,可直接返回0 2.判断是否存在障碍物:初始化时需要设置障碍物后的坐标为0

windows环境使用cmake配置pcl

安装环境 cmake版本:cmake-3.26.3-windows-x86_64 pcl版本:PCL 1.13.1 vs版本:vs2022 配置流程 cmake编译准备:新建两个文件夹source和cmake_bin。source用于存放.cpp文件和CMakeLists.txt 文件;cmake_bin存放配置生…

【Java】Java核心 73:XML (中)

文章目录 5 XML的组成:字符区(了解)**6** **DTD约束(能够看懂即可)****1** **什么是DTD****2** **DTD约束的实现和语法规则(看懂dtd约束,书写符合规范的xml文件)** 5 XML的组成:字符区(了解) 当大量的转义字符出现在x…

「网络编程」第二讲:网络编程socket套接字(一)

「前言」文章是关于网络编程的socket套接字方面的,下面开始讲解! 「归属专栏」网络编程 「笔者」枫叶先生(fy) 「座右铭」前行路上修真我 「枫叶先生有点文青病」 「每篇一句」 春风得意马蹄疾,一日看尽长安花。 ——孟郊《登科后》 目录 一…

【Python笔记】之-bash: python: command not found

问题: 在服务器环境,使用python命令时提示:-bash: python: command not found 查看服务器python版本,一般是在/usr/bin目录下,在终端输入命令如下: find /usr/bin -iname python*得到输出: …

Android Compose Button defaultButtonColors

Android Compose Button defaultButtonColors 本文最新更新地址 https://gitee.com/chenjim/chenjimblog 发现问题 最近看 Android Compose 相关资料发现如下代码 colors defaultButtonColors( backgroundColor if (count > 5) Color.Green else Color.White )原文地…

Elasticsearch:使用 SIMD 指令加速向量搜索

作者:Chris Hegarty, Elastic Principal Engineer, Lucene PMC 翻译:杰瑞朱 多年来,Java 平台上运行的代码一直受益于自动向量化 —— HotSpot C2 编译器中的 superword 优化,将多个标量操作打包到 SIMD(单指令多数据…

springboot-配置优先级

配置文件 类型 1.properties(三者同时存在,优先级最高) 2.yml 3.yaml(最低) 除此之外,可以在启动配置处修改 //java系统属性配置, -Dserver.port8080,优先级高于以上三种 //命令行参数 --server.port10010&#xff0…