python - 如何使用 Tweepy 在 python 中过滤推文?
问题描述
下面是我的代码,其中我已经散列了所有不同的方法,我试图指定它应该只返回基于特定位置的推文,但所有方法都不起作用。
有人有什么想法吗?
wb_ehu = Workbook()
search_words = "Blue Bag"
new_search = search_words + " -filter:retweets"
date_since = "2020-06-01"
ws_ehu = wb_ehu.active
ws_ehu["A1"] = "Created_Date"
ws_ehu["B1"] = "Tweet"
ws_ehu["C1"] = "Username"
ws_ehu["D1"] = "Location"
for tweet in tweepy.Cursor(api.search, q=new_search, count=1000, tweet_mode="extended",
lang="en",
#Place= "London,UK"
#geo = [-0.127758, 51.507351]
#geo = [51.507351,-0.127758]
#geocode = [-0.127758, 51.507351]
#geocode = [51.507351,-0.127758]
#coordinates = [-0.127758, 51.507351]
#coordinates = [51.507351,-0.127758]
since=date_since).items():
ws_ehu.append([tweet.created_at, tweet.full_text, tweet.user.screen_name, tweet.user.location ])
此外,我尝试指定从特定日期获取推文,但它永远不会返回超过当前月份的推文。
解决方案
我已经能够使用日期时间和带有地理坐标的 if 语句来弄清楚它。
import datetime
wb_ehu = Workbook()
search_words = "Blue Bag"
new_search = search_words + " -filter:retweets"
startDate = datetime.datetime(2021, 6, 1, 0, 0, 0)
endDate = datetime.datetime(2021, 7, 3, 0, 0, 0)
ws_ehu = wb_ehu.active
ws_ehu["A1"] = "Created_Date"
ws_ehu["B1"] = "Tweet"
ws_ehu["C1"] = "Username"
ws_ehu["D1"] = "Location"
for tweet in tweepy.Cursor(api.search,
geocode= "51.507351,-0.127758,50mi",
q=new_search, count=1000, tweet_mode="extended",
lang="en",
).items():
if tweet.created_at < endDate and tweet.created_at > startDate:
ws_ehu.append([tweet.created_at, tweet.full_text,
tweet.user.screen_name, tweet.user.location ])
推荐阅读
- java - Spring Boot:单向 SSL 在客户端强制密钥存储配置
- ruby-on-rails - 升级到 Rails 6 后,延迟作业的邮件测试无法正常工作
- c++ - 如何使一个函数具有三种不同的输出条件?
- regex - GNU find:正则表达式查找一系列 Unicode 代码点
- google-bigquery - 如何在 BigQuery 中导入包含位置的 CSV
- mikro-orm - 正确使用 IdentifiedReference 和 { WrappedReference: true }
- multithreading - 互斥量和二进制信号量之间的实际区别
- matlab - 可以提高 Matlab export_fig 中点的分辨率吗?
- python - Yelp 抓取,Python 难以获得汽车旅馆
- android - App Bar 不会根据导航组件中的 Fragment 更改