将用户列表的推文存储到数据库中以供NLP处理的脚本。
项目描述
Tweet Archiveur
此项目的目标是存储推文到数据库中。但您也可以在不使用数据库的情况下使用它。
- 输入:CSV文件中的tweetos ID
- 输出:推文和标签的数据库
我们的目标是存储法国议会所有成员的推文,以了解热门话题的趋势。
但您也可以用此项目为其他目的与其他人一起使用。
如何安装此包
待办事项:当
- 将“nom”重命名为users中的“name”
- 重新激活单元测试(《https://githubdocs.cn/en/actions/guides/creating-postgresql-service-containers》)
- 将爬虫改为类
- 切换到SQLAlchemy
- Flake8
- 文档
pip install tweetarchiveur
如何在项目中使用此包
有两个类
- 一个用于Twitter API的Scrapper()类
- 一个Database()类,用于存储推文和标签
from tweet_archiveur.scrapper import Scrapper
from tweet_archiveur.database import Database
# Force some variable outside Docker
from os import environ
environ["DATABASE_PORT"] = '8479'
environ["DATABASE_HOST"] = 'localhost'
environ["DATABASE_USER"] = 'tweet_archiveur_user'
environ["DATABASE_PASS"] = '1234leximpact'
environ["DATABASE_NAME"] = 'tweet_archiveur'
scrapper = Scrapper()
df_users = scrapper.get_users_accounts('../tests/sample-users.csv')
users_id = df_users.twitter_id.tolist()
database = Database()
database.create_tables_if_not_exist()
database.insert_twitter_users(df_users)
scrapper.get_all_tweet_and_store_them(database, users_id[0:2])
del database
del scrapper
2021-03-22 10:21:59,837 - tweet-archiveur INFO Scrapper ready
2021-03-22 10:21:59,841 - tweet-archiveur INFO Loading database module...
2021-03-22 10:21:59,842 - tweet-archiveur DEBUG DEBUG : connect(user=tweet_archiveur_user, password=XXXX, host=localhost, port=8479, database=tweet_archiveur, url=None)
2021-03-22 10:22:03,915 - tweet-archiveur INFO Done scrapping, we got 400 tweets from 2 tweetos.
我们如何使用它
我们每8小时获取577名法国议会成员的推文,并将它们存储在PostgreSQL数据库中。
然后我们使用Apache Superset对其进行分析。
我们的部署方式
准备环境
git clone https://github.com/leximpact/tweet-archiveur.git
cd tweet-archiveur
cp docker/docker.env .env
编辑.env文件以符合您的需求。
运行应用程序
docker-compose up -d
查看正在发生的事情
docker logs tweet-archiveur_tweet_archiveur_1 -f
脚本archiveur.py使用https://github.com/regardscitoyens/twitter-parlementaires中的包来获取议会账号。
参数从.env文件中读取。
它由.entrypoint.sh脚本每8小时启动一次。
停止它
docker-compose down
数据保存在Docker卷中,要清理它们
docker-compose down -v
如何处理它们?
- 最常用的标签(按时间段、按人计算)
- 最/不活跃的用户
- 时间线
- NLP主题检测
- 词云
附录
退出代码
- 1:存储推文时出现未知错误
- 2:获取推文时出现未知错误
- 3:连续失败超过3次
- 4:无环境变量
如果任何一项失败,则不会保存推文。
状态码=429:当你超过允许的最大请求数量时,会返回429 'Too many requests'错误
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。
源分发
tweet_archiveur-0.0.1.tar.gz (16.2 kB 查看散列)
构建分发
tweet_archiveur-0.0.1-py3-none-any.whl (13.2 kB 查看散列)
关闭
tweet_archiveur-0.0.1.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 654bf9da344b338b0166c6227e18d3285fdba2430a9bc1a080b6beefc245ee5c |
|
MD5 | 6025dfc647d4e0fe60d50f31891814c0 |
|
BLAKE2b-256 | 3bae27aee847b43d044a4de6ce2c4de729e72157d6bd7b4e7084eca7296cc59d |
关闭
tweet_archiveur-0.0.1-py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 3a208ee80b143e7abdf69485473848ef71f67dc7c6c15217cf74410ae7710a95 |
|
MD5 | 5e8f8766af64580a884ccf6dde39f6c3 |
|
BLAKE2b-256 | 119b216c684763344d4803712f97568f6822d8d05f6f192d9ea451ff6bdfd190 |