Add a Post Creation Limit for WordPress Users

If you have a multi-author website or a lot of people providing material, limiting post creation is a good idea. It allows you to limit the amount of articles a user may post, making content management on your site much easier.

#wordpress 

What is GEEK

Buddha Community

Add a Post Creation Limit for WordPress Users

Top 7 Post Timeline WordPress Plugins

Want to feature a brand history or storyline on a WordPress website? If yes, then read this blog thoroughly.

Many of your website visitors want to know about your brand history or the achievements of your past. For that, a timeline layout is a good solution. Showcase the story of your company or brand in chronological order with the dazzling post timeline posts. WordPress has several themes that have default horizontal timeline formats. But, to get a fully functional & beautifully designed timeline WordPress has plenty of resources of timeline plugins.

No concerns! We have assembled the best post timeline WordPress plugins. Each set of plugins have different functionalities and customization settings. Get the best one and create a timeline with the best one!

1. WP Timeline Designer Pro

WP Timeline Designer is a feature-rich plugin that provides vertical and horizontal timeline templates with lots of advanced functionalities. While showcasing a story or company history with the beautiful chart or design then timeline layout helps to easily understand and attract the readers as well. A great way to tell a story or create a post then the timeline plugin helps to create an attractive timeline.

Timeline Designer – Free

Timeline Designer – a free plugin recently launched on the WordPress repository platform. The free plugin contains in-built 6 existing customizable layouts with other customization options. Using this WordPress plugin, a user can match the look & feel of your WordPress site.

Features:

  • Supports custom post type.
  • Provides the customization of background color, show/hide timeline icon, template layout color, and basic animations.
  • Style the post with the stunning content box.
  • With the Horizontal timeline layout, a user gets the navigation option such as auto slide, number of slides, scrolling speed, etc.
  • The plugin has Shortcode functionality with which a user can showcase timeline posts anywhere on the website.

WP Timeline Designer Pro – Premium

WP Timeline Designer Pro is an elegant and fantastic plugin with responsive timeline layouts. In the pro version, the plugin contains 15+ timeline templates with lots of options and tools to style and design the posts. It has in-built 20+ core demos available with which a user can showcase life story, event summary, author biography, achievements, company history, hiring process, etc in an eye-catchy timeline design.

Features:

  • 12+ post animation effects on scrolling.
  • Advanced filter post with the date, time period, author, post category, post status, etc.
  • 10+ social sharing icons available and available in the library to change the icon settings anytime.
  • The plugin allows you to add different types of pagination options such as load more buttons, pagination on scroll, etc.
  • The premium plugin contains several media options for timeline posts such as hover effect on images, adjust image size, or text. link on media, custom image size, etc.

2. Post Timeline

Post Timeline plugin allows creating a timeline on 100% of the page. It allows the creation of unlimited vertical and horizontal timelines. To create a simple and single timeline, a user can use shortcode functionality.

**Post Timeline – Free **

The Post Timeline Free plugin allows you to create a timeline on the vertical layout. A user can also assign the category and tags.

Features:

  • Smooth Animation & Slide Navigation is available.
  • The plugin helps to create a tag-based and year-based timeline with parameters.
  • The free plugin has customization offers such as color, assign different icons, etc.

Post Timeline – Premium

The pro version of the Post Timeline WordPress plugin has both vertical and horizontal timeline layouts. The plugin has inbuilt 23 timeline templates and all the timelines layout can be chosen by the admin for each timeline.

Features:

  • The plugin has CSS3 animation + JS animation to make the timeline post prettier.
  • Post Timeline comes with the backend template manager. It allows a user to preview the timeline on the page with the required content.
  • 5 navigation options available.

3. Cool Timeline

Cool Timeline, as its name suggests, creates a complete timeline layout for the WordPress website. It is an HTML and CSS timeline plugin that helps to build awesome horizontal and vertical layouts. The new version of the plugin is very well compatible with Gutenberg.

**Cool Timeline: Free **

The Cool Timeline with the free version has 5 vertical and one horizontal timeline design. Also, the plugin allows users to showcase the stories in ascending & descending orders based on the year and date.

Features:

  • It is a Gutenberg-friendly WordPress plugin with which a user can add shortcodes on any page using the Gutenberg block.
  • A user can showcase the timeline images in the pop-up and link them to read a full story.
  • Using this plugin, you can create a timeline both-sided as well as one-sided.

Cool TimelineCool Timeline: Premium

Cool Timeline Pro plugin has an advanced admin panel that helps to manage the timeline visibility details & other customization factors very smoothly. The premium plugin comes with 4 timeline layouts with 40+ several timeline designs.

Features:

  • It provides a custom text and custom story order in/place of date and time in a timeline layout.
  • Create multiple timelines in one website with the different categories
  • The plugin comes with the proper navigation options, so a user can quickly navigate to a particular story.

#best wordpress timeline plugin #post timeline plugin wordpress #post timeline wordpress #timeline plugin for wordpress #wordpress post timeline plugins #wordpress timeline plugin

Top 7 Post Timeline WordPress Plugins

Want to feature a brand history or storyline on a WordPress website? If yes, then read this blog thoroughly.

Many of your website visitors want to know about your brand history or the achievements of your past. For that, a timeline layout is a good solution. Showcase the story of your company or brand in chronological order with the dazzling post timeline posts. WordPress has several themes that have default horizontal timeline formats. But, to get a fully functional & beautifully designed timeline WordPress has plenty of resources of timeline plugins.

No concerns! We have assembled the best post timeline WordPress plugins. Each set of plugins have different functionalities and customization settings. Get the best one and create a timeline with the best one!

1. WP Timeline Designer Pro

WP Timeline Designer is a feature-rich plugin that provides vertical and horizontal timeline templates with lots of advanced functionalities. While showcasing a story or company history with the beautiful chart or design then timeline layout helps to easily understand and attract the readers as well. A great way to tell a story or create a post then the timeline plugin helps to create an attractive timeline.

Timeline Designer – Free

Timeline Designer – a free plugin recently launched on the WordPress repository platform. The free plugin contains in-built 6 existing customizable layouts with other customization options. Using this WordPress plugin, a user can match the look & feel of your WordPress site.
This is image title

Features:

  • Supports custom post type.
  • Provides the customization of background color, show/hide timeline icon, template layout color, and basic animations.
  • Style the post with the stunning content box.
  • With the Horizontal timeline layout, a user gets the navigation option such as auto slide, number of slides, scrolling speed, etc.
  • The plugin has Shortcode functionality with which a user can showcase timeline posts anywhere on the website.

WP Timeline Designer Pro – Premium

WP Timeline Designer Pro is an elegant and fantastic plugin with responsive timeline layouts. In the pro version, the plugin contains 15+ timeline templates with lots of options and tools to style and design the posts. It has in-built 20+ core demos available with which a user can showcase life story, event summary, author biography, achievements, company history, hiring process, etc in an eye-catchy timeline design.
This is image title

Features:

  • 12+ post animation effects on scrolling.
  • Advanced filter post with the date, time period, author, post category, post status, etc.
  • 10+ social sharing icons available and available in the library to change the icon settings anytime.
  • The plugin allows you to add different types of pagination options such as load more buttons, pagination on scroll, etc.
  • The premium plugin contains several media options for timeline posts such as hover effect on images, adjust image size, or text. link on media, custom image size, etc.

2. Post Timeline

Post Timeline plugin allows creating a timeline on 100% of the page. It allows the creation of unlimited vertical and horizontal timelines. To create a simple and single timeline, a user can use shortcode functionality.

**Post Timeline – Free **

The Post Timeline Free plugin allows you to create a timeline on the vertical layout. A user can also assign the category and tags.

Features:

  • Smooth Animation & Slide Navigation is available.
  • The plugin helps to create a tag-based and year-based timeline with parameters.
  • The free plugin has customization offers such as color, assign different icons, etc.
    This is image title

Post Timeline – Premium

The pro version of the Post Timeline WordPress plugin has both vertical and horizontal timeline layouts. The plugin has inbuilt 23 timeline templates and all the timelines layout can be chosen by the admin for each timeline.

Features:

  • The plugin has CSS3 animation + JS animation to make the timeline post prettier.
  • Post Timeline comes with the backend template manager. It allows a user to preview the timeline on the page with the required content.
  • 5 navigation options available.

3. Cool Timeline

Cool Timeline, as its name suggests, creates a complete timeline layout for the WordPress website. It is an HTML and CSS timeline plugin that helps to build awesome horizontal and vertical layouts. The new version of the plugin is very well compatible with Gutenberg.

**Cool Timeline: Free **

The Cool Timeline with the free version has 5 vertical and one horizontal timeline design. Also, the plugin allows users to showcase the stories in ascending & descending orders based on the year and date.

Features:

  • It is a Gutenberg-friendly WordPress plugin with which a user can add shortcodes on any page using the Gutenberg block.
  • A user can showcase the timeline images in the pop-up and link them to read a full story.
  • Using this plugin, you can create a timeline both-sided as well as one-sided.
    This is image title

Cool TimelineCool Timeline: Premium

Cool Timeline Pro plugin has an advanced admin panel that helps to manage the timeline visibility details & other customization factors very smoothly. The premium plugin comes with 4 timeline layouts with 40+ several timeline designs.

Features:

  • It provides a custom text and custom story order in/place of date and time in a timeline layout.
  • Create multiple timelines in one website with the different categories
  • The plugin comes with the proper navigation options, so a user can quickly navigate to a particular story.

#best wordpress timeline plugin #post timeline plugin wordpress #post timeline wordpress #timeline plugin for wordpress #wordpress post timeline plugins #wordpress timeline plugin

许 志强

许 志强

1657769340

如何使用 Tweepy 和 Snscape 从 Twitter 上抓取数据

如果您是数据爱好者,您可能会同意社交媒体是现实世界数据中最丰富的来源之一。像 Twitter 这样的网站充满了数据。

您可以通过多种方式使用从社交媒体获得的数据,例如针对特定问题或感兴趣领域的情绪分析(分析人们的想法)。

您可以通过多种方式从 Twitter 上抓取(或收集)数据。在本文中,我们将研究其中两种方式:使用 Tweepy 和 Snscrap。

我们将学习一种方法来抓取人们关于特定趋势主题的公开对话,以及来自特定用户的推文。

现在事不宜迟,让我们开始吧。

Tweepy vs Snscrape——我们的抓取工具简介

现在,在我们进入每个平台的实现之前,让我们尝试掌握每个平台的差异和限制。

呸呸呸

Tweepy 是一个用于与 Twitter API 集成的 Python 库。因为 Tweepy 与 Twitter API 连接,除了抓取推文之外,您还可以执行复杂的查询。它使您能够利用 Twitter API 的所有功能。

但也有一些缺点——比如它的标准 API 只允许您收集长达一周的推文(也就是说,Tweepy 不允许恢复超过一周窗口的推文,因此不允许检索历史数据)。

此外,您可以从用户帐户中检索多少条推文也是有限制的。您可以在此处阅读有关 Tweepy 功能的更多信息

刮擦

Snscape 是另一种从 Twitter 上抓取信息的方法,不需要使用 API。Snscrape 允许您抓取基本信息,例如用户的个人资料、推文内容、来源等。

Snscape 不仅限于 Twitter,还可以从其他著名的社交媒体网络(如 Facebook、Instagram 等)中抓取内容。

它的优点是可以检索的推文数量或推文窗口(即推文的日期范围)没有限制。因此,Snscape 允许您检索旧数据。

但一个缺点是它缺乏 Tweepy 的所有其他功能——不过,如果你只想抓取推文,Snscrap 就足够了。

现在我们已经阐明了这两种方法之间的区别,让我们一一来看看它们的实现。

如何使用 Tweepy 抓取推文

在我们开始使用 Tweepy 之前,我们必须首先确保我们的 Twitter 凭据已准备好。有了它,我们可以将 Tweepy 连接到我们的 API 密钥并开始抓取。

如果您没有 Twitter 凭据,您可以前往此处注册 Twitter 开发者帐户。您将被问及一些关于您打算如何使用 Twitter API 的基本问题。之后,您可以开始实施。

第一步是在你的本地机器上安装 Tweepy 库,你可以通过键入:

pip install git+https://github.com/tweepy/tweepy.git

如何在 Twitter 上抓取用户的推文

现在我们已经安装了 Tweepy 库,让我们从johnTwitter 上调用的用户那里抓取 100 条推文。我们将查看完整的代码实现,让我们这样做并详细讨论它,以便我们了解发生了什么:

import tweepy

consumer_key = "XXXX" #Your API/Consumer key 
consumer_secret = "XXXX" #Your API/Consumer Secret Key
access_token = "XXXX"    #Your Access token key
access_token_secret = "XXXX" #Your Access token Secret key

#Pass in our twitter API authentication key
auth = tweepy.OAuth1UserHandler(
    consumer_key, consumer_secret,
    access_token, access_token_secret
)

#Instantiate the tweepy API
api = tweepy.API(auth, wait_on_rate_limit=True)


username = "john"
no_of_tweets =100


try:
    #The number of tweets we want to retrieved from the user
    tweets = api.user_timeline(screen_name=username, count=no_of_tweets)
    
    #Pulling Some attributes from the tweet
    attributes_container = [[tweet.created_at, tweet.favorite_count,tweet.source,  tweet.text] for tweet in tweets]

    #Creation of column list to rename the columns in the dataframe
    columns = ["Date Created", "Number of Likes", "Source of Tweet", "Tweet"]
    
    #Creation of Dataframe
    tweets_df = pd.DataFrame(attributes_container, columns=columns)
except BaseException as e:
    print('Status Failed On,',str(e))
    time.sleep(3)

现在让我们回顾一下上面代码块中的每一部分代码。

import tweepy

consumer_key = "XXXX" #Your API/Consumer key 
consumer_secret = "XXXX" #Your API/Consumer Secret Key
access_token = "XXXX"    #Your Access token key
access_token_secret = "XXXX" #Your Access token Secret key

#Pass in our twitter API authentication key
auth = tweepy.OAuth1UserHandler(
    consumer_key, consumer_secret,
    access_token, access_token_secret
)

#Instantiate the tweepy API
api = tweepy.API(auth, wait_on_rate_limit=True)

在上面的代码中,我们将 Tweepy 库导入到我们的代码中,然后我们创建了一些变量来存储我们的 Twitter 凭据(Tweepy 身份验证处理程序需要我们的四个 Twitter 凭据)。所以我们然后将这些变量传递给 Tweepy 身份验证处理程序并将它们保存到另一个变量中。

然后最后一个调用语句是我们实例化 Tweepy API 并传入 require 参数的地方。

username = "john"
no_of_tweets =100


try:
    #The number of tweets we want to retrieved from the user
    tweets = api.user_timeline(screen_name=username, count=no_of_tweets)
    
    #Pulling Some attributes from the tweet
    attributes_container = [[tweet.created_at, tweet.favorite_count,tweet.source,  tweet.text] for tweet in tweets]

    #Creation of column list to rename the columns in the dataframe
    columns = ["Date Created", "Number of Likes", "Source of Tweet", "Tweet"]
    
    #Creation of Dataframe
    tweets_df = pd.DataFrame(attributes_container, columns=columns)
except BaseException as e:
    print('Status Failed On,',str(e))

在上面的代码中,我们创建了要从中检索推文的用户名(Twitter 中的@name)以及推文的数量。然后我们创建了一个异常处理程序来帮助我们以更有效的方式捕获错误。

之后,api.user_timeline()返回我们在参数中选择的用户发布的最新推文的集合以及screen_name您要检索的推文数量。

在下一行代码中,我们传入了一些我们想从每条推文中检索的属性,并将它们保存到一个列表中。要查看可以从推文中检索到的更多属性,请阅读

在最后一段代码中,我们创建了一个数据框,并传入了我们创建的列表以及我们创建的列的名称。

请注意,列名必须按照您将它们传递到属性容器的顺序(即,当您从推文中检索属性时,您如何在列表中传递这些属性)。

如果你正确地按照我描述的步骤,你应该有这样的:

图像 17

作者图片

现在我们已经完成了,在我们进入 Snscrap 实现之前,让我们再看一个例子。

如何从文本搜索中抓取推文

在这种方法中,我们将根据搜索检索推文。你可以这样做:

import tweepy

consumer_key = "XXXX" #Your API/Consumer key 
consumer_secret = "XXXX" #Your API/Consumer Secret Key
access_token = "XXXX"    #Your Access token key
access_token_secret = "XXXX" #Your Access token Secret key

#Pass in our twitter API authentication key
auth = tweepy.OAuth1UserHandler(
    consumer_key, consumer_secret,
    access_token, access_token_secret
)

#Instantiate the tweepy API
api = tweepy.API(auth, wait_on_rate_limit=True)


search_query = "sex for grades"
no_of_tweets =150


try:
    #The number of tweets we want to retrieved from the search
    tweets = api.search_tweets(q=search_query, count=no_of_tweets)
    
    #Pulling Some attributes from the tweet
    attributes_container = [[tweet.user.name, tweet.created_at, tweet.favorite_count, tweet.source,  tweet.text] for tweet in tweets]

    #Creation of column list to rename the columns in the dataframe
    columns = ["User", "Date Created", "Number of Likes", "Source of Tweet", "Tweet"]
    
    #Creation of Dataframe
    tweets_df = pd.DataFrame(attributes_container, columns=columns)
except BaseException as e:
    print('Status Failed On,',str(e))

上面的代码与前面的代码类似,只是我们将 API 方法从 更改api.user_timeline()api.search_tweets()。我们还添加tweet.user.name了属性容器列表。

在上面的代码中,你可以看到我们传入了两个属性。这是因为如果我们只传入tweet.user,它只会返回一个字典用户对象。所以我们还必须传入另一个我们想从用户对象中检索的属性,即name.

您可以在此处查看可以从用户对象中检索的附加属性列表。现在,一旦您运行它,您应该会看到类似这样的内容:

图像 18

图片由作者提供。

好的,这就是 Tweepy 的实现。请记住,您可以检索的推文数量是有限制的,并且您不能使用 Tweepy 检索超过 7 天的推文。

如何使用 Snscrape 来抓取推文

正如我之前提到的,Snscrape 不需要 Twitter 凭据(API 密钥)来访问它。您可以获取的推文数量也没有限制。

但是,对于这个示例,我们将只检索与上一个示例相同的推文,但使用 Snscape。

要使用 Snscrap,我们必须首先在我们的 PC 上安装它的库。您可以通过键入:

pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git

如何使用 Snscrape 抓取用户的推文

Snscrape 包括两种从 Twitter 获取推文的方法:命令行界面 (CLI) 和 Python Wrapper。请记住,Python Wrapper 目前没有文档记录——但我们仍然可以通过反复试验来度过难关。

在本例中,我们将使用 Python Wrapper,因为它比 CLI 方法更直观。但是,如果您遇到一些代码问题,您可以随时向 GitHub 社区寻求帮助。贡献者将很乐意为您提供帮助。

要检索特定用户的推文,我们可以执行以下操作:

import snscrape.modules.twitter as sntwitter
import pandas as pd

# Created a list to append all tweet attributes(data)
attributes_container = []

# Using TwitterSearchScraper to scrape data and append tweets to list
for i,tweet in enumerate(sntwitter.TwitterSearchScraper('from:john').get_items()):
    if i>100:
        break
    attributes_container.append([tweet.date, tweet.likeCount, tweet.sourceLabel, tweet.content])
    
# Creating a dataframe from the tweets list above 
tweets_df = pd.DataFrame(attributes_container, columns=["Date Created", "Number of Likes", "Source of Tweet", "Tweets"])

让我们复习一下你可能第一眼看不懂的一些代码:

for i,tweet in enumerate(sntwitter.TwitterSearchScraper('from:john').get_items()):
    if i>100:
        break
    attributes_container.append([tweet.date, tweet.likeCount, tweet.sourceLabel, tweet.content])
    
  
# Creating a dataframe from the tweets list above 
tweets_df = pd.DataFrame(attributes_container, columns=["Date Created", "Number of Likes", "Source of Tweet", "Tweets"])

在上面的代码中,所做的sntwitter.TwitterSearchScaper是从我们传递给它的用户名(即 john)中返回一个推文对象。

正如我之前提到的,Snscrape 对推文的数量没有限制,因此它会返回来自该用户的许多推文。为了解决这个问题,我们需要添加枚举函数,该函数将遍历对象并添加一个计数器,以便我们可以访问用户最近的 100 条推文。

您可以看到,我们从每条推文中获得的属性语法与 Tweepy 中的类似。这些是我们可以从 Martin Beck 策划的 Snscape 推文中获得的属性列表。

Sns.Scrape

学分:马丁贝克

可能会添加更多属性,因为 Snscape 库仍在开发中。例如上图中的,source已替换为sourceLabel. 如果你只传入source它会返回一个对象。

如果你运行上面的代码,你应该也会看到类似这样的东西:

图像 19

作者图片

现在让我们对通过搜索进行抓取做同样的事情。

如何使用 Snscrape 从文本搜索中抓取推文

import snscrape.modules.twitter as sntwitter
import pandas as pd

# Creating list to append tweet data to
attributes_container = []

# Using TwitterSearchScraper to scrape data and append tweets to list
for i,tweet in enumerate(sntwitter.TwitterSearchScraper('sex for grades since:2021-07-05 until:2022-07-06').get_items()):
    if i>150:
        break
    attributes_container.append([tweet.user.username, tweet.date, tweet.likeCount, tweet.sourceLabel, tweet.content])
    
# Creating a dataframe to load the list
tweets_df = pd.DataFrame(attributes_container, columns=["User", "Date Created", "Number of Likes", "Source of Tweet", "Tweet"])

同样,您可以使用 Snscrape 访问大量历史数据(与 Tweepy 不同,因为它的标准 API 不能超过 7 天。高级 API 是 30 天。)。所以我们可以在方法中传入我们想要开始搜索的日期和想要结束的日期sntwitter.TwitterSearchScraper()

我们在前面的代码中所做的基本上就是我们之前讨论过的。唯一要记住的是,直到与 Python 中的范围函数类似(也就是说,它不包括最后一个整数)。因此,如果您想从今天开始获取推文,则需要在“直到”参数中包含今天之后的一天。

图像 21

作者的形象。

现在您也知道如何使用 Snscape 抓取推文了!

何时使用每种方法

现在我们已经了解了每种方法的工作原理,您可能想知道何时使用哪种方法。

好吧,对于何时使用每种方法没有通用规则。一切都取决于问题偏好和您的用例。

如果你想获得无穷无尽的推文,你应该使用 Snscrap。但是,如果您想使用 Snscrape 无法提供的额外功能(例如地理定位),那么您绝对应该使用 Tweepy。它直接与 Twitter API 集成并提供完整的功能。

即便如此,Snscrape 是最常用的基本刮削方法。

结论

在本文中,我们学习了如何使用 Tweepy 和 Snscrap 从 Python 中抓取数据。但这只是对每种方法如何工作的简要概述。您可以通过浏览网络了解更多信息以获取更多信息。

我提供了一些有用的资源,如果您需要更多信息,可以使用它们。感谢您的阅读。

 来源:https ://www.freecodecamp.org/news/python-web-scraping-tutorial/

#python #web 

坂本  篤司

坂本 篤司

1657773780

TweepyとSnscrapeを使用してTwitterからデータをスクレイピングする方法

あなたがデータ愛好家であれば、実世界のデータの最も豊富な情報源の1つがソーシャルメディアであることに同意するでしょう。Twitterのようなサイトはデータでいっぱいです。

ソーシャルメディアから取得できるデータは、特定の問題や関心のある分野に関する感情分析(人々の考えを分析する)など、さまざまな方法で使用できます。

Twitterからデータを取得(または収集)する方法はいくつかあります。この記事では、TweepyとSnscrapeの2つの方法について説明します。

特定のトレンドトピックに関する人々からの公開会話や、特定のユーザーからのツイートをスクレイプする方法を学びます。

さて、これ以上面倒なことはせずに、始めましょう。

Tweepy vs Snscrape –スクレイピングツールの紹介

さて、各プラットフォームの実装に入る前に、各プラットフォームの違いと限界を把握してみましょう。

Tweepy

Tweepyは、TwitterAPIと統合するためのPythonライブラリです。TweepyはTwitterAPIに接続されているため、ツイートをスクレイピングするだけでなく、複雑なクエリを実行できます。これにより、TwitterAPIのすべての機能を利用できるようになります。

ただし、いくつかの欠点があります。たとえば、標準APIでは最大1週間のツイートしか収集できない(つまり、Tweepyでは1週間を超えるツイートの回復が許可されないため、履歴データの取得は許可されません)。

また、ユーザーのアカウントから取得できるツイートの数には制限があります。Tweepyの機能について詳しくは、こちらをご覧ください。

Snscrape

Snscrapeは、APIを使用せずにTwitterから情報を取得するためのもう1つのアプローチです。Snscrapeを使用すると、ユーザーのプロファイル、ツイートコンテンツ、ソースなどの基本情報をスクレイピングできます。

SnscrapeはTwitterだけでなく、Facebook、Instagramなどの他の著名なソーシャルメディアネットワークからコンテンツをスクレイピングすることもできます。

その利点は、取得できるツイートの数やツイートのウィンドウ(つまり、ツイートの日付範囲)に制限がないことです。したがって、Snscrapeを使用すると、古いデータを取得できます。

ただし、1つの欠点は、Tweepyの他のすべての機能が不足していることです。それでも、ツイートをスクレイピングするだけの場合は、Snscrapeで十分です。

2つのメソッドの違いが明確になったので、それらの実装を1つずつ見ていきましょう。

Tweepyを使用してツイートをスクレイピングする方法

Tweepyの使用を開始する前に、まずTwitterのクレデンシャルの準備ができていることを確認する必要があります。これで、TweepyをAPIキーに接続して、スクレイピングを開始できます。

Twitterの資格情報をお持ちでない場合は、こちらからTwitter開発者アカウントに登録できます。TwitterAPIをどのように使用するかについての基本的な質問がいくつかあります。その後、実装を開始できます。

最初のステップは、ローカルマシンにTweepyライブラリをインストールすることです。これは、次のように入力することで実行できます。

pip install git+https://github.com/tweepy/tweepy.git

Twitterでユーザーからのツイートをスクレイピングする方法

Tweepyライブラリをインストールしたので、johnTwitterで呼び出されたユーザーから100件のツイートを取得してみましょう。これを可能にする完全なコード実装を見て、何が起こっているのかを把握できるように詳細に説明します。

import tweepyconsumer_key = "XXXX" #Your API/Consumer key consumer_secret = "XXXX" #Your API/Consumer Secret Keyaccess_token = "XXXX"    #Your Access token keyaccess_token_secret = "XXXX" #Your Access token Secret key#Pass in our twitter API authentication keyauth = tweepy.OAuth1UserHandler(    consumer_key, consumer_secret,    access_token, access_token_secret)#Instantiate the tweepy APIapi = tweepy.API(auth, wait_on_rate_limit=True)username = "john"no_of_tweets =100try:    #The number of tweets we want to retrieved from the user    tweets = api.user_timeline(screen_name=username, count=no_of_tweets)        #Pulling Some attributes from the tweet    attributes_container = [[tweet.created_at, tweet.favorite_count,tweet.source,  tweet.text] for tweet in tweets]    #Creation of column list to rename the columns in the dataframe    columns = ["Date Created", "Number of Likes", "Source of Tweet", "Tweet"]        #Creation of Dataframe    tweets_df = pd.DataFrame(attributes_container, columns=columns)except BaseException as e:    print('Status Failed On,',str(e))    time.sleep(3)

次に、上記のブロックのコードの各部分を見ていきましょう。

import tweepyconsumer_key = "XXXX" #Your API/Consumer key consumer_secret = "XXXX" #Your API/Consumer Secret Keyaccess_token = "XXXX"    #Your Access token keyaccess_token_secret = "XXXX" #Your Access token Secret key#Pass in our twitter API authentication keyauth = tweepy.OAuth1UserHandler(    consumer_key, consumer_secret,    access_token, access_token_secret)#Instantiate the tweepy APIapi = tweepy.API(auth, wait_on_rate_limit=True)

上記のコードでは、Tweepyライブラリをコードにインポートしてから、Twitterクレデンシャルを格納する変数をいくつか作成しました(Tweepy認証ハンドラーには4つのTwitterクレデンシャルが必要です)。次に、それらの変数をTweepy認証ハンドラーに渡し、別の変数に保存します。

次に、呼び出しの最後のステートメントは、Tweepy APIをインスタンス化し、requireパラメーターを渡した場所です。

username = "john"no_of_tweets =100try:    #The number of tweets we want to retrieved from the user    tweets = api.user_timeline(screen_name=username, count=no_of_tweets)        #Pulling Some attributes from the tweet    attributes_container = [[tweet.created_at, tweet.favorite_count,tweet.source,  tweet.text] for tweet in tweets]    #Creation of column list to rename the columns in the dataframe    columns = ["Date Created", "Number of Likes", "Source of Tweet", "Tweet"]        #Creation of Dataframe    tweets_df = pd.DataFrame(attributes_container, columns=columns)except BaseException as e:    print('Status Failed On,',str(e))

上記のコードでは、ツイートを取得するユーザーの名前(Twitterでは@name)と、ツイートの数を作成しました。次に、より効果的な方法でエラーをキャッチするのに役立つ例外ハンドラーを作成しました。

その後api.user_timeline()、パラメータで選択したユーザーによって投稿された最新のツイートのコレクションと、screen_name取得するツイートの数が返されます。

次のコード行では、各ツイートから取得する属性をいくつか渡して、リストに保存しました。ツイートから取得できるその他の属性を確認するには、こちらをお読みください。

コードの最後のチャンクで、データフレームを作成し、作成した列の名前とともに作成したリストを渡しました。

列名は、属性コンテナにどのように渡したか(つまり、ツイートから属性を取得するときにリストでこれらの属性をどのように渡したか)の順序である必要があることに注意してください。

私が説明した手順を正しく実行した場合は、次のようになります。

画像-17

著者による画像

これで完了です。Snscrapeの実装に移る前に、もう1つの例を見ていきましょう。

テキスト検索からツイートをスクレイピングする方法

この方法では、検索に基づいてツイートを取得します。あなたはこのようにそれを行うことができます:

import tweepyconsumer_key = "XXXX" #Your API/Consumer key consumer_secret = "XXXX" #Your API/Consumer Secret Keyaccess_token = "XXXX"    #Your Access token keyaccess_token_secret = "XXXX" #Your Access token Secret key#Pass in our twitter API authentication keyauth = tweepy.OAuth1UserHandler(    consumer_key, consumer_secret,    access_token, access_token_secret)#Instantiate the tweepy APIapi = tweepy.API(auth, wait_on_rate_limit=True)search_query = "sex for grades"no_of_tweets =150try:    #The number of tweets we want to retrieved from the search    tweets = api.search_tweets(q=search_query, count=no_of_tweets)        #Pulling Some attributes from the tweet    attributes_container = [[tweet.user.name, tweet.created_at, tweet.favorite_count, tweet.source,  tweet.text] for tweet in tweets]    #Creation of column list to rename the columns in the dataframe    columns = ["User", "Date Created", "Number of Likes", "Source of Tweet", "Tweet"]        #Creation of Dataframe    tweets_df = pd.DataFrame(attributes_container, columns=columns)except BaseException as e:    print('Status Failed On,',str(e))

api.user_timeline()上記のコードは、APIメソッドをからに変更したことを除いて、前のコードと似ていますapi.search_tweets()tweet.user.name属性コンテナリストにも追加しました。

上記のコードでは、2つの属性を渡したことがわかります。これは、を渡すだけではtweet.user、辞書のユーザーオブジェクトのみが返されるためです。したがって、ユーザーオブジェクトから取得する別の属性である。も渡す必要がありますname

ここに移動して、ユーザーオブジェクトから取得できる追加の属性のリストを確認できます。これを実行すると、次のようなものが表示されます。

画像-18

著者による画像。

了解しました。これでTweepyの実装はほぼ完了です。取得できるツイートの数には制限があり、Tweepyを使用して7日以上経過したツイートを取得することはできません。

Snscrapeを使用してツイートをスクレイピングする方法

前述したように、SnscrapeはそれにアクセスするためにTwitterのクレデンシャル(APIキー)を必要としません。取得できるツイートの数にも制限はありません。

ただし、この例では、前の例と同じツイートを取得しますが、代わりにSnscrapeを使用します。

Snscrapeを使用するには、最初にそのライブラリをPCにインストールする必要があります。次のように入力すると、次のように入力できます。

pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git

Snscrapeを使用してユーザーからのツイートをスクレイピングする方法

Snscrapeには、Twitterからツイートを取得するための2つの方法が含まれています。コマンドラインインターフェイス(CLI)とPythonラッパーです。Python Wrapperは現在文書化されていないことを覚えておいてください。ただし、試行錯誤を繰り返すことで解決できます。

この例では、CLIメソッドよりも直感的であるため、Pythonラッパーを使用します。ただし、コードに行き詰まった場合は、いつでもGitHubコミュニティに支援を求めることができます。寄稿者は喜んでお手伝いします。

特定のユーザーからツイートを取得するには、次のようにします。

import snscrape.modules.twitter as sntwitterimport pandas as pd# Created a list to append all tweet attributes(data)attributes_container = []# Using TwitterSearchScraper to scrape data and append tweets to listfor i,tweet in enumerate(sntwitter.TwitterSearchScraper('from:john').get_items()):    if i>100:        break    attributes_container.append([tweet.date, tweet.likeCount, tweet.sourceLabel, tweet.content])    # Creating a dataframe from the tweets list above tweets_df = pd.DataFrame(attributes_container, columns=["Date Created", "Number of Likes", "Source of Tweet", "Tweets"])

一見理解できないかもしれないコードのいくつかを見てみましょう:

for i,tweet in enumerate(sntwitter.TwitterSearchScraper('from:john').get_items()):    if i>100:        break    attributes_container.append([tweet.date, tweet.likeCount, tweet.sourceLabel, tweet.content])      # Creating a dataframe from the tweets list above tweets_df = pd.DataFrame(attributes_container, columns=["Date Created", "Number of Likes", "Source of Tweet", "Tweets"])

上記のコードでは、sntwitter.TwitterSearchScaper渡したユーザー(john)の名前からツイートのオブジェクトを返します。

前述したように、Snscrapeにはツイートの数に制限がないため、そのユーザーからのツイートの数は返されます。これを支援するために、オブジェクトを反復処理する列挙関数を追加し、カウンターを追加して、ユーザーからの最新の100件のツイートにアクセスできるようにする必要があります。

各ツイートから取得した属性構文は、Tweepyのものと同じように見えることがわかります。これらは、MartinBeckによってキュレーションされたSnscrapeツイートから取得できる属性のリストです。

Sns.Scrape

クレジット:Martin Beck

Snscrapeライブラリはまだ開発中であるため、さらに属性が追加される可能性があります。たとえば上の画像のように、sourceはに置き換えられましたsourceLabel。パスのみを渡すとsource、オブジェクトが返されます。

上記のコードを実行すると、次のようなものも表示されます。

画像-19

著者による画像

次に、検索によるスクレイピングについても同じようにします。

Snscrapeを使用してテキスト検索からツイートをスクレイピングする方法

import snscrape.modules.twitter as sntwitterimport pandas as pd# Creating list to append tweet data toattributes_container = []# Using TwitterSearchScraper to scrape data and append tweets to listfor i,tweet in enumerate(sntwitter.TwitterSearchScraper('sex for grades since:2021-07-05 until:2022-07-06').get_items()):    if i>150:        break    attributes_container.append([tweet.user.username, tweet.date, tweet.likeCount, tweet.sourceLabel, tweet.content])    # Creating a dataframe to load the listtweets_df = pd.DataFrame(attributes_container, columns=["User", "Date Created", "Number of Likes", "Source of Tweet", "Tweet"])

繰り返しになりますが、Snscrapeを使用して多くの履歴データにアクセスできます(Tweepyとは異なり、標準APIは7日を超えることはできません。プレミアムAPIは30日です)。したがって、検索を開始する日付と終了する日付をsntwitter.TwitterSearchScraper()メソッドに渡すことができます。

前のコードで行ったことは、基本的に前に説明したことです。覚えておくべき唯一のことは、Pythonの範囲関数と同様に機能するまで(つまり、最後の整数を除外する)ということです。したがって、今日からツイートを取得する場合は、今日の翌日を「until」パラメーターに含める必要があります。

画像-21

著者の画像。

これで、Snscrapeを使用してツイートをスクレイピングする方法もわかりました。

各アプローチをいつ使用するか

それぞれの方法がどのように機能するかを見てきたので、いつどの方法を使用するのか疑問に思われるかもしれません。

ええと、それぞれの方法をいつ利用するかについての普遍的な規則はありません。すべては問題の好みとあなたのユースケースに帰着します。

無限のツイートを取得したい場合は、Snscrapeを使用する必要があります。ただし、Snscrapeが提供できない追加機能(ジオロケーションなど)を使用する場合は、必ずTweepyを使用する必要があります。Twitter APIと直接統合されており、完全な機能を提供します。

それでも、Snscrapeは基本的なスクレイピングに最も一般的に使用される方法です。

結論

この記事では、TweepyとSnscrapeを使用してPythonからデータをスクレイピングする方法を学びました。しかし、これは各アプローチがどのように機能するかについての簡単な概要にすぎませんでした。詳細については、Webを探索して詳細を確認してください。

追加情報が必要な場合に使用できる便利なリソースをいくつか紹介しました。読んでくれてありがとう。

 ソース:https ://www.freecodecamp.org/news/python-web-scraping-tutorial/

#python #web 

Léon  Peltier

Léon Peltier

1657769520

Comment Extraire Des Données De Twitter à L'aide De Tweepy Et Snscrape

Si vous êtes un passionné de données, vous conviendrez probablement que l'une des sources les plus riches de données du monde réel est les médias sociaux. Des sites comme Twitter regorgent de données.

Vous pouvez utiliser les données que vous pouvez obtenir des médias sociaux de plusieurs façons, comme l'analyse des sentiments (analyser les pensées des gens) sur une question ou un domaine d'intérêt spécifique.

Il existe plusieurs façons de récupérer (ou de collecter) des données sur Twitter. Et dans cet article, nous examinerons deux de ces méthodes : utiliser Tweepy et Snscrape.

Nous apprendrons une méthode pour extraire les conversations publiques des personnes sur un sujet de tendance spécifique, ainsi que les tweets d'un utilisateur particulier.

Maintenant, sans plus tarder, commençons.

Tweepy vs Snscrape - Introduction à nos outils de grattage

Maintenant, avant d'aborder l'implémentation de chaque plateforme, essayons de saisir les différences et les limites de chaque plateforme.

Tweepy

Tweepy est une bibliothèque Python pour l'intégration avec l'API Twitter. Parce que Tweepy est connecté à l'API Twitter, vous pouvez effectuer des requêtes complexes en plus de gratter des tweets. Il vous permet de profiter de toutes les fonctionnalités de l'API Twitter.

Mais il y a quelques inconvénients - comme le fait que son API standard ne vous permet de collecter des tweets que pendant une semaine maximum (c'est-à-dire que Tweepy ne permet pas la récupération des tweets au-delà d'une fenêtre d'une semaine, donc la récupération des données historiques n'est pas autorisée).

En outre, il existe des limites au nombre de tweets que vous pouvez récupérer à partir du compte d'un utilisateur. Vous pouvez en savoir plus sur les fonctionnalités de Tweepy ici .

Capture d'écran

Snscrape est une autre approche pour extraire des informations de Twitter qui ne nécessite pas l'utilisation d'une API. Snscrape vous permet de récupérer des informations de base telles que le profil d'un utilisateur, le contenu du tweet, la source, etc.

Snscrape ne se limite pas à Twitter, mais peut également récupérer le contenu d'autres réseaux sociaux importants tels que Facebook, Instagram et autres.

Ses avantages sont qu'il n'y a pas de limites au nombre de tweets que vous pouvez récupérer ou à la fenêtre de tweets (c'est-à-dire la plage de dates des tweets). Ainsi, Snscrape vous permet de récupérer d'anciennes données.

Mais le seul inconvénient est qu'il lui manque toutes les autres fonctionnalités de Tweepy – cependant, si vous ne voulez gratter que des tweets, Snscrape suffirait.

Maintenant que nous avons clarifié la distinction entre les deux méthodes, passons en revue leur implémentation une par une.

Comment utiliser Tweepy pour gratter des tweets

Avant de commencer à utiliser Tweepy, nous devons d'abord nous assurer que nos identifiants Twitter sont prêts. Avec cela, nous pouvons connecter Tweepy à notre clé API et commencer à gratter.

Si vous n'avez pas d'informations d'identification Twitter, vous pouvez créer un compte de développeur Twitter en vous rendant ici . On vous posera quelques questions de base sur la façon dont vous avez l'intention d'utiliser l'API Twitter. Après cela, vous pouvez commencer la mise en œuvre.

La première étape consiste à installer la bibliothèque Tweepy sur votre machine locale, ce que vous pouvez faire en tapant :

pip install git+https://github.com/tweepy/tweepy.git

Comment supprimer les tweets d'un utilisateur sur Twitter

Maintenant que nous avons installé la bibliothèque Tweepy, récupérons 100 tweets d'un utilisateur appelé johnsur Twitter. Nous examinerons l'implémentation complète du code qui nous permettra de faire cela et en discuterons en détail afin que nous puissions comprendre ce qui se passe :

import tweepy

consumer_key = "XXXX" #Your API/Consumer key 
consumer_secret = "XXXX" #Your API/Consumer Secret Key
access_token = "XXXX"    #Your Access token key
access_token_secret = "XXXX" #Your Access token Secret key

#Pass in our twitter API authentication key
auth = tweepy.OAuth1UserHandler(
    consumer_key, consumer_secret,
    access_token, access_token_secret
)

#Instantiate the tweepy API
api = tweepy.API(auth, wait_on_rate_limit=True)


username = "john"
no_of_tweets =100


try:
    #The number of tweets we want to retrieved from the user
    tweets = api.user_timeline(screen_name=username, count=no_of_tweets)
    
    #Pulling Some attributes from the tweet
    attributes_container = [[tweet.created_at, tweet.favorite_count,tweet.source,  tweet.text] for tweet in tweets]

    #Creation of column list to rename the columns in the dataframe
    columns = ["Date Created", "Number of Likes", "Source of Tweet", "Tweet"]
    
    #Creation of Dataframe
    tweets_df = pd.DataFrame(attributes_container, columns=columns)
except BaseException as e:
    print('Status Failed On,',str(e))
    time.sleep(3)

Passons maintenant en revue chaque partie du code dans le bloc ci-dessus.

import tweepy

consumer_key = "XXXX" #Your API/Consumer key 
consumer_secret = "XXXX" #Your API/Consumer Secret Key
access_token = "XXXX"    #Your Access token key
access_token_secret = "XXXX" #Your Access token Secret key

#Pass in our twitter API authentication key
auth = tweepy.OAuth1UserHandler(
    consumer_key, consumer_secret,
    access_token, access_token_secret
)

#Instantiate the tweepy API
api = tweepy.API(auth, wait_on_rate_limit=True)

Dans le code ci-dessus, nous avons importé la bibliothèque Tweepy dans notre code, puis nous avons créé des variables dans lesquelles nous stockons nos informations d'identification Twitter (le gestionnaire d'authentification Tweepy nécessite quatre de nos informations d'identification Twitter). Nous transmettons donc ces variables au gestionnaire d'authentification Tweepy et les enregistrons dans une autre variable.

Ensuite, la dernière instruction d'appel est celle où nous avons instancié l'API Tweepy et transmis les paramètres requis.

username = "john"
no_of_tweets =100


try:
    #The number of tweets we want to retrieved from the user
    tweets = api.user_timeline(screen_name=username, count=no_of_tweets)
    
    #Pulling Some attributes from the tweet
    attributes_container = [[tweet.created_at, tweet.favorite_count,tweet.source,  tweet.text] for tweet in tweets]

    #Creation of column list to rename the columns in the dataframe
    columns = ["Date Created", "Number of Likes", "Source of Tweet", "Tweet"]
    
    #Creation of Dataframe
    tweets_df = pd.DataFrame(attributes_container, columns=columns)
except BaseException as e:
    print('Status Failed On,',str(e))

Dans le code ci-dessus, nous avons créé le nom de l'utilisateur (le @name dans Twitter) dont nous voulons récupérer les tweets ainsi que le nombre de tweets. Nous avons ensuite créé un gestionnaire d'exceptions pour nous aider à détecter les erreurs de manière plus efficace.

Après cela, le api.user_timeline()renvoie une collection des tweets les plus récents publiés par l'utilisateur que nous avons choisi dans le screen_nameparamètre et le nombre de tweets que vous souhaitez récupérer.

Dans la ligne de code suivante, nous avons transmis certains attributs que nous souhaitons récupérer de chaque tweet et les avons enregistrés dans une liste. Pour voir plus d'attributs que vous pouvez récupérer à partir d'un tweet, lisez ceci .

Dans le dernier morceau de code, nous avons créé une trame de données et transmis la liste que nous avons créée avec les noms de la colonne que nous avons créée.

Notez que les noms de colonne doivent être dans l'ordre de la façon dont vous les avez passés dans le conteneur d'attributs (c'est-à-dire, comment vous avez passé ces attributs dans une liste lorsque vous récupérez les attributs du tweet).

Si vous avez correctement suivi les étapes que j'ai décrites, vous devriez avoir quelque chose comme ceci :

image-17

Image de l'auteur

Maintenant que nous avons terminé, passons en revue un autre exemple avant de passer à l'implémentation de Snscrape.

Comment extraire des tweets d'une recherche textuelle

Dans cette méthode, nous allons récupérer un tweet basé sur une recherche. Vous pouvez le faire comme ceci :

import tweepy

consumer_key = "XXXX" #Your API/Consumer key 
consumer_secret = "XXXX" #Your API/Consumer Secret Key
access_token = "XXXX"    #Your Access token key
access_token_secret = "XXXX" #Your Access token Secret key

#Pass in our twitter API authentication key
auth = tweepy.OAuth1UserHandler(
    consumer_key, consumer_secret,
    access_token, access_token_secret
)

#Instantiate the tweepy API
api = tweepy.API(auth, wait_on_rate_limit=True)


search_query = "sex for grades"
no_of_tweets =150


try:
    #The number of tweets we want to retrieved from the search
    tweets = api.search_tweets(q=search_query, count=no_of_tweets)
    
    #Pulling Some attributes from the tweet
    attributes_container = [[tweet.user.name, tweet.created_at, tweet.favorite_count, tweet.source,  tweet.text] for tweet in tweets]

    #Creation of column list to rename the columns in the dataframe
    columns = ["User", "Date Created", "Number of Likes", "Source of Tweet", "Tweet"]
    
    #Creation of Dataframe
    tweets_df = pd.DataFrame(attributes_container, columns=columns)
except BaseException as e:
    print('Status Failed On,',str(e))

Le code ci-dessus est similaire au code précédent, sauf que nous avons modifié la méthode API de api.user_timeline()à api.search_tweets(). Nous avons également ajouté tweet.user.nameà la liste des conteneurs d'attributs.

Dans le code ci-dessus, vous pouvez voir que nous avons transmis deux attributs. En effet, si nous ne transmettons que tweet.user, cela ne renverra qu'un objet utilisateur dictionnaire. Nous devons donc également transmettre un autre attribut que nous voulons récupérer à partir de l'objet utilisateur, qui est name.

Vous pouvez aller ici pour voir une liste d'attributs supplémentaires que vous pouvez récupérer à partir d'un objet utilisateur. Maintenant, vous devriez voir quelque chose comme ceci une fois que vous l'avez exécuté :

image-18

Image de l'auteur.

Très bien, cela termine à peu près la mise en œuvre de Tweepy. N'oubliez pas qu'il y a une limite au nombre de tweets que vous pouvez récupérer et que vous ne pouvez pas récupérer de tweets datant de plus de 7 jours avec Tweepy.

Comment utiliser Snscrape pour gratter des tweets

Comme je l'ai mentionné précédemment, Snscrape ne nécessite pas d'informations d'identification Twitter (clé API) pour y accéder. Il n'y a pas non plus de limite au nombre de tweets que vous pouvez récupérer.

Pour cet exemple, cependant, nous allons simplement récupérer les mêmes tweets que dans l'exemple précédent, mais en utilisant Snscrape à la place.

Pour utiliser Snscrape, nous devons d'abord installer sa bibliothèque sur notre PC. Vous pouvez le faire en tapant :

pip3 install git+https://github.com/JustAnotherArchivist/snscrape.git

Comment supprimer les tweets d'un utilisateur avec Snscrape

Snscrape inclut deux méthodes pour obtenir des tweets de Twitter : l'interface de ligne de commande (CLI) et un Python Wrapper. Gardez simplement à l'esprit que le Python Wrapper n'est actuellement pas documenté - mais nous pouvons toujours nous débrouiller avec des essais et des erreurs.

Dans cet exemple, nous utiliserons le Wrapper Python car il est plus intuitif que la méthode CLI. Mais si vous êtes bloqué avec du code, vous pouvez toujours vous tourner vers la communauté GitHub pour obtenir de l'aide. Les contributeurs se feront un plaisir de vous aider.

Pour récupérer les tweets d'un utilisateur particulier, nous pouvons procéder comme suit :

import snscrape.modules.twitter as sntwitter
import pandas as pd

# Created a list to append all tweet attributes(data)
attributes_container = []

# Using TwitterSearchScraper to scrape data and append tweets to list
for i,tweet in enumerate(sntwitter.TwitterSearchScraper('from:john').get_items()):
    if i>100:
        break
    attributes_container.append([tweet.date, tweet.likeCount, tweet.sourceLabel, tweet.content])
    
# Creating a dataframe from the tweets list above 
tweets_df = pd.DataFrame(attributes_container, columns=["Date Created", "Number of Likes", "Source of Tweet", "Tweets"])

Passons en revue une partie du code que vous ne comprenez peut-être pas à première vue :

for i,tweet in enumerate(sntwitter.TwitterSearchScraper('from:john').get_items()):
    if i>100:
        break
    attributes_container.append([tweet.date, tweet.likeCount, tweet.sourceLabel, tweet.content])
    
  
# Creating a dataframe from the tweets list above 
tweets_df = pd.DataFrame(attributes_container, columns=["Date Created", "Number of Likes", "Source of Tweet", "Tweets"])

Dans le code ci-dessus, ce qu'il sntwitter.TwitterSearchScaperfait est de renvoyer un objet de tweets à partir du nom de l'utilisateur que nous lui avons transmis (qui est john).

Comme je l'ai mentionné plus tôt, Snscrape n'a pas de limite sur le nombre de tweets, il renverra donc le nombre de tweets de cet utilisateur. Pour vous aider, nous devons ajouter la fonction d'énumération qui parcourra l'objet et ajoutera un compteur afin que nous puissions accéder aux 100 tweets les plus récents de l'utilisateur.

Vous pouvez voir que la syntaxe des attributs que nous obtenons de chaque tweet ressemble à celle de Tweepy. Voici la liste des attributs que nous pouvons obtenir du tweet Snscrape qui a été organisé par Martin Beck.

Sns.Scrape

1 crédit

D'autres attributs pourraient être ajoutés, car la bibliothèque Snscrape est encore en développement. Comme par exemple dans l'image ci-dessus, sourcea été remplacé par sourceLabel. Si vous passez seulement source, cela renverra un objet.

Si vous exécutez le code ci-dessus, vous devriez également voir quelque chose comme ceci :

image-19

Image de l'auteur

Faisons maintenant de même pour le scraping par recherche.

Comment extraire des tweets d'une recherche textuelle avec Snscrape

import snscrape.modules.twitter as sntwitter
import pandas as pd

# Creating list to append tweet data to
attributes_container = []

# Using TwitterSearchScraper to scrape data and append tweets to list
for i,tweet in enumerate(sntwitter.TwitterSearchScraper('sex for grades since:2021-07-05 until:2022-07-06').get_items()):
    if i>150:
        break
    attributes_container.append([tweet.user.username, tweet.date, tweet.likeCount, tweet.sourceLabel, tweet.content])
    
# Creating a dataframe to load the list
tweets_df = pd.DataFrame(attributes_container, columns=["User", "Date Created", "Number of Likes", "Source of Tweet", "Tweet"])

Encore une fois, vous pouvez accéder à de nombreuses données historiques en utilisant Snscrape (contrairement à Tweepy, car son API standard ne peut pas dépasser 7 jours. L'API premium est de 30 jours.). Nous pouvons donc transmettre la date à partir de laquelle nous voulons commencer la recherche et la date à laquelle nous voulons qu'elle se termine dans la sntwitter.TwitterSearchScraper()méthode.

Ce que nous avons fait dans le code précédent correspond essentiellement à ce dont nous avons discuté précédemment. La seule chose à garder à l'esprit est que until fonctionne de manière similaire à la fonction range en Python (c'est-à-dire qu'elle exclut le dernier entier). Donc, si vous souhaitez obtenir des tweets à partir d'aujourd'hui, vous devez inclure le jour d'après dans le paramètre "jusqu'à".

image-21

Image de l'auteur.

Maintenant, vous savez aussi comment gratter des tweets avec Snscrape !

Quand utiliser chaque approche

Maintenant que nous avons vu comment chaque méthode fonctionne, vous vous demandez peut-être quand utiliser laquelle.

Eh bien, il n'y a pas de règle universelle pour savoir quand utiliser chaque méthode. Tout se résume à une préférence de matière et à votre cas d'utilisation.

Si vous souhaitez acquérir un nombre infini de tweets, vous devez utiliser Snscrape. Mais si vous souhaitez utiliser des fonctionnalités supplémentaires que Snscrape ne peut pas fournir (comme la géolocalisation, par exemple), vous devez absolument utiliser Tweepy. Il est directement intégré à l'API Twitter et fournit des fonctionnalités complètes.

Même ainsi, Snscrape est la méthode la plus couramment utilisée pour le grattage de base.

Conclusion

Dans cet article, nous avons appris à récupérer des données de Python à l'aide de Tweepy et Snscrape. Mais ce n'était qu'un bref aperçu du fonctionnement de chaque approche. Vous pouvez en savoir plus en explorant le Web pour obtenir des informations supplémentaires.

J'ai inclus quelques ressources utiles que vous pouvez utiliser si vous avez besoin d'informations supplémentaires. Merci pour la lecture.

 Source : https://www.freecodecamp.org/news/python-web-scraping-tutorial/

#python #web