Skip to main content

用于抓取推文的工具

项目描述

一个简单且无限制的 twitter 爬虫,带有 python。

在过去的几天里,推特几乎禁止了所有推特抓取工具。该存储库代表了一种替代工具,用于在给定语言和单词列表或帐户名称的两个给定日期(从开始到结束)之间删除推文,并保存包含检索数据的 csv 文件:

[UserScreenName, UserName, Timestamp, Text, Embedded_text, Emojis, Comments, Likes, Retweets, Image link, Tweet URL]

也可以Image link通过传递参数来下载和保存图像save_images = True,如果您只想抓取图像,我建议将参数设置为display_type = image仅显示包含图像的推文。

您也可以抓取用户个人资料信息,包括关注者和关注者。

在关注者/关注者抓取的情况下需要认证。建议用新账号登录(如果关注者列表很长,可能会被封号)。要登录您的帐户,您需要在env文件中输入您的用户名SCWEET_USERNAME和密码。您可以控制和函数中的参数。SCWEET_PASSWORDwaitget_users_followersget_users_following

用户代码允许您获取用户列表的所有信息,包括位置、加入日期以及关注者和关注者列表。检查这个例子

要求:

pip install -r requirements.txt

注意:您需要在系统中安装 Chrome

结果 :

推文:

CSV 文件包含以下功能(对于每条推文):

  • “用户屏幕名称”:
  • “用户名”:用户名
  • 'Timestamp' : 推文的时间戳
  • '文本' : 推文文本
  • 'Embedded_text' :写在推文上方的嵌入文本。如果相关推文是回复,它可能是图片、视频甚至是另一条推文。
  • 'Emojis' : 推文中存在的表情符号
  • '评论' : 评论数
  • '喜欢':喜欢的数量
  • '转推':转推的数量
  • '图片链接' : 推文中图片的链接
  • “推文 URL”:推文 URL。

下面的追随者 :

和in用户给出给定用户列表的关注者和关注者列表get_users_followingget_users_followers

很快将添加更多功能,例如“针对特定 Twitter 帐户的每条推文的所有重复”

用法 :

图书馆 :

该库现已可用。要安装库,请运行:

pip install Scweet==1.6

安装后,您可以按如下方式使用它:

from Scweet.scweet import scrape
from Scweet.user import get_user_information, get_users_following, get_users_followers``

在距离阿利坎特(西班牙)不到 200 公里的地方,用 'bitcoin'、'ethereum' 等词刮掉顶部推文,Lat=38.3452,Long=-0.481006,并且没有回复。
间隔越小,过程越慢(选择一个可以划分时间段的间隔,开始日期和最大日期)

data = scrape(words=['bitcoin','ethereum'], since="2021-10-01", until="2021-10-05", from_account = None,         interval=1, headless=False, display_type="Top", save_images=False, lang="en",
	resume=False, filter_replies=False, proximity=False, geocode="38.3452,-0.481006,200km")

使用标签#bitcoin 刮掉热门推文,靠近且不回复。
间隔越小,过程越慢(选择一个可以划分时间段的间隔,开始日期和最大日期)

data = scrape(hashtag="bitcoin", since="2021-08-05", until=None, from_account = None, interval=1, 
              headless=True, display_type="Top", save_images=False, 
              resume=False, filter_replies=True, proximity=True)

获取给定用户列表的主要信息
这些用户属于我的以下。

users = ['nagouzil', '@yassineaitjeddi', 'TahaAlamIdrissi', 
         '@Nabila_Gl', 'geceeekusuu', '@pabu232', '@av_ahmet', '@x_born_to_die_x']

**此函数返回一个列表,其中包含:**
["nb of following","nb of follower", "join date", "birthdate", "location", "website", "description"]

users_info = get_user_information(users, headless=True)

获取给定用户列表的关注者和关注者 在 .env 文件中输入您的用户名和密码。我建议您不要使用您的主帐户。
增加等待参数以避免禁止您的帐户并在互联网速度较慢时最大化抓取过程。我用了1,它是安全的。

使用 SCWEET_EMAIL、SCWEET_USERNAME 和 SCWEET_PASSWORD 变量设置您的 .env 文件并提供其路径

env_path = ".env"

following = get_users_following(users=users, env=env_path, verbose=0, headless=True, wait=2, limit=50, file_path=None)

followers = get_users_followers(users=users, env=env_path, verbose=0, headless=True, wait=2, limit=50, file_path=None)

终端 :

Scrape tweets.

optional arguments:
  -h, --help            show this help message and exit
  --words WORDS         Words to search. they should be separated by "//" : Cat//Dog.
  --from_account FROM_ACCOUNT
                        Tweets posted by "from_account" account.
  --to_account TO_ACCOUNT
                        Tweets posted in response to "to_account" account.
  --mention_account MENTION_ACCOUNT
                        Tweets mention "mention_account" account.         
  --hashtag HASHTAG
                        Tweets containing #hashtag
  --until UNTIL   max date for search query. example : %Y-%m-%d.
  --since SINCE
                        Start date for search query. example : %Y-%m-%d.
  --interval INTERVAL   Interval days between each start date and end date for
                        search queries. example : 5.
  --lang LANG           tweets language. Example : "en" for english and "fr"
                        for french.
  --headless HEADLESS   Headless webdrives or not. True or False
  --limit LIMIT         Limit tweets per <interval>
  --display_type DISPLAY_TYPE
                        Display type of twitter page : Latest or Top tweets
  --resume RESUME       Resume the last scraping. specify the csv file path.
  --proxy PROXY         Proxy server
  --proximity PROXIMITY Proximity
  --geocode GEOCODE     Geographical location coordinates to center the
                        search (), radius. No compatible with proximity
  --minreplies MINREPLIES
                        Min. number of replies to the tweet
  --minlikes MINLIKES   Min. number of likes to the tweet
  --minretweets MINRETWEETS
                        Min. number of retweets to the tweet

### To execute the script : 
python scweet.py --words "excellente//car" --to_account "tesla"  --until 2020-01-05 --since 2020-01-01 --limit 10 --interval 1 --display_type Latest --lang="en" --headless True

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

Scweet-1.8.tar.gz (15.2 kB 查看哈希

已上传 source

内置分布

Scweet-1.8-py3-none-any.whl (14.1 kB 查看哈希

已上传 py3