使用 Python 抓取 Twitter 数据 [使用 2 个 API]

已发表: 2020-11-30

目录

介绍

Twitter 等社交媒体平台是收集数据集的最佳存储库之一。 从事新的数据科学项目需要大量数据,收集数据集并非易事。

Twitter 提供了多样化的数据类型,因为它是来自不同心态和不同情绪的人的推文集合。 这种没有偏见的数据集是训练新机器学习模型急需的先决条件。

让我们开始吧!

我们将介绍 2 个用于 Twitter 数据抓取的 API。

  1. 呸呸呸
  2. 孪生

呸呸呸

在我们开始介绍使用 Tweepy API 抓取数据的 python 代码之前,您需要知道我们需要 Twitter 开发人员帐户的凭据,如果您已经拥有它们,那将是小菜一碟。

对于没有开发者帐户的人,您可以在这里申请 在申请开发者帐户之前,您需要拥有一个 Twitter 帐户。 申请开发者帐号是一个简单的过程,应用程序会询问一些基本问题,例如申请的原因等。开发者帐号的批准通常需要 2-3 天。

收到开发者帐户的批准后,请记下“密钥和令牌”部分中的消费者 API 密钥、访问令牌和访问令牌秘密。

此外,还有一点需要注意的是,tweepy 几乎没有限制,比如你只能抓取不超过一周的推文。 抓取限制,在 15 分钟的时间内最多 18000 条推文。

太好了,现在我们已经拥有来自开发者帐户的密钥和令牌,让我们对它们进行授权。

consumer_key = 你的消费者密钥

consumer_secret = 你的消费者秘密

access_token = 你的访问令牌

access_token_secret = 你的令牌秘密

授权= tweepy.OAuthHandler(consumer_key, consumer_secret)

授权.set_access_token(access_token, access_token_secret)

api = tweepy.API(授权,wait_on_rate_limit = True

现在我们已经使用我们的凭据进行了授权,让我们抓取特定帐户的推文。 现在,让我们抓取 Sundar Pichai 先生的推文。

用户名= ' sundarpichai '

计数= 100

尝试

#line1

tweets_obj = tweepy.Cursor(api.user_timeline,id = username).items(count)

#line2

tweets_list = [[tweet.created_at, tweet.id, tweet.text]用于tweets_obj推文]

#line3

tweets_df = pd.DataFrame(tweets_list)

除了BaseException作为e:

print ( '出错了, ' , str (e))

在上面的代码片段中,line1 创建了一个包含所有推文的可迭代对象,并将其分配给变量“tweets_obj”。 完成创建可迭代对象后,让我们对其进行迭代并提取所有数据。

我们只提取了一些属性,例如“created_at”、“id”、“text”,并将它们附加到 2D 数组中的每个条目中。 每个条目都有我们抓取的每条推文的所有数据。 现在我们有了一个以属性作为每个条目的二维数组,我们可以使用“pd.DataFrame()”语法将其转换为数据框。

将数组转换为数据框的原因是更灵活、预定义方法的可用性以及易于访问,使其在数据科学项目的所有数据结构中脱颖而出。

同样,让我们​​看一下用于抓取具有特定文本查询的数据的代码。

text_query = '本地人声'

计数= 100

尝试

#line1

tweets_obj = tweepy.Cursor(api.search,q = text_query).items(count)

#line2

tweets_list = [[tweet.created_at, tweet.id, tweet.text]用于tweets_obj推文]

#line3

df = pd.DataFrame(tweets_list)

除了BaseException作为e:

print ( '出错了, ' , str (e))

在上面的代码片段中,一切都与前面的代码片段相同。 最后,我们创建了一个数据框,其中包含所有包含文本查询“vocal for local”的推文。

如果您正在寻找更具体或自定义的数据抓取,例如包括更多属性,如转发计数、收藏计数等。我们可以自定义语法并提取 tweepy 提供的其他属性。 要进一步阅读 tweepy 提供的其他属性,请查看文档

孪生

Twint API 不需要任何开发人员帐户凭据,您无需任何授权密钥即可轻松抓取推文。 此外,twint 没有任何限制,例如推文数量、时间范围、抓取限制等。Twint 为您提供无缝的数据抓取和易于使用的 API。

我们可以使用来自 twint API 的用户名打印一个人的关注者列表。

t_obj = twint.Config()

t_obj.Username = sundarpichai

twint.run.Followers(t_obj)

在上面的代码片段中,twint.Config() 配置了 twint API 并使事情开始。 在分配对象后,我们可以将该引用用于我们的工作,“t_obj.Username”分配我们输入的用户名。 并且 twint.run.Followers 执行对该用户名的所有关注者的搜索。

我们还可以将抓取的数据存储到类似于 tweepy API 的数据框中。

t_obj.Limit = 100

t_obj.Username = sundarpichai

t_obj.Pandas =

twint.run.Followers(t_obj)

result_df = twint.storage.panda.User_df

片段中的所有内容都与之前的片段几乎相同,只是多了一行语法“twint.storage.panda.User_df”,它将抓取的数据转换为数据帧。 结果数据框由给定用户名的关注者列表组成。

现在我们已经看到了抓取特定用户名的关注者数据,让我们看一下抓取特定帐户推文的代码。

t_obj.Search = 来自:@sundarpichai

t_obj.Store_object = True

t_obj.Limit = 20

twint.run.Search(t_obj)

推文= t.search_tweet_list

打印(推文)

在上面的代码片段中,我们正在配置对象来搜索特定人的推文,我们还可以在抓取时使用语法“t_obj.Limit”设置推文的限制。 运行搜索后,它会创建所有推文的列表,我们可以根据需要将其分配给局部变量。

在看到特定帐户的抓取信息片段后,您可能会有一个快速的问题,即如何抓取包含特定关键字的推文? 不是问题 twint 对此有解决方案。

t_obj.Search = 数据科学

t_obj.Store_object = True

t_obj.Limit = 100

twint.run.Search(t_obj)

推文= t.search_tweet_list

打印(推文)

上面的代码段与从特定帐户中抓取推文的代码段相同,但在 line1 中有一个区别。 我们还可以根据自己的方便将其转换为数据框。

有关 twint API 的进一步阅读,请查看他们的存储库和文档

结论

我们已经了解抓取数据的重要性。 浏览了两个 API 及其用于抓取 Twitter 数据的功能。 看到了一些将抓取的数据转换为我们需要的文件格式的方法。 现在您已经了解了这些 API,开始为您的数据科学项目抓取数据!

upGrad我们很乐意为您提供帮助,也想让您了解通过学习 Python 可以获得的机会。 Python 已广泛用于机器学习和数据科学这两种最流行和新兴的技术。 学习 Python 并了解这些技能将使您在您的领域中脱颖而出并获得更好的职业机会。

我们与行业专家和顶级学术机构一起开发了许多课程,为您提供在该领域取得优异成绩所需的所有技能。 一些可以帮助您利用 Python 知识并增加职业前景的课程:

数据科学:

查看 upGrad使用 IIIT-B 开发的在线数据科学课程,这是一门成熟的数据科学课程,可以进入该领域并用您的知识在行业中留下印记。

数据科学理学硕士:与利物浦约翰摩尔斯大学和 IIIT-B 合作开发,获得世界顶尖大学之一的数据科学硕士学位。

机器学习:

机器学习和人工智能高级认证:印度最好的教育机构之一的印度理工学院马德拉斯分校与 upGrad 合作,开设了机器学习高级课程,让个人通过本课程全面了解机器学习。

机器学习和人工智能理学硕士:利物浦约翰摩尔斯大学和 IIIT-B 与 upGrad 合作,提供完整的理学硕士学位,供个人详细学习技术并获得该技术的正式学位,为成功铺平道路这个领域的路径。

机器学习和人工智能 PG 文凭:IIIT-B 和 upGrad 携手合作,帮助个人有机会参加为期 12 个月的机器学习和人工智能课程,并有机会通过本课程进入这项技术。

什么是数据抓取?

数据抓取是指计算机软件从另一个程序创建的输出中抓取数据的过程。 网页抓取是一种数据抓取,用于从不同的网站收集数据或信息。 在网络抓取中,应用程序用于从网站收集有价值的信息。 网页抓取程序可以使用 HTML(超文本传输​​协议)或网络浏览器快速轻松地访问 WWW(万维网)。

为什么在 Twitter 上需要数据抓取?

社交媒体上的数据抓取有助于跟踪、评估和审查平台上可用的数据。 Twitter 是最受欢迎的平台,抓取 Twitter 数据有助于用户分析用户行为、竞争策略、情绪分析,并从人们、同行和企业的推文中及时了解世界上最受欢迎的社交渠道上发生的事情对你很重要。 Twitter 数据抓取服务可以在最短的时间内处理您的端到端需求,并为您提供必要的数据。 例如,Twitter 仅允许爬虫通过其 API 收集数据,以限制有关其用户及其活动的信息量。

什么是 API?

应用程序编程接口是允许数字设备、软件程序和数据服务器相互通信的一小段代码,它们是我们目前所依赖的许多服务的重要支柱。 API 将计算机或软件相互连接起来,而不是用户界面将计算机连接到人。 它不是为任何人(最终用户)直接使用而设计的,除了将其合并到软件中的计算机程序员之外。 API 通常由许多组件组成,这些组件充当程序员的工具或服务。