【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"}).text
 	print(content)