【问题标题】:python code to fetch the tweets with its place, from where it is taggedpython 代码来获取推文及其位置,从它被标记的位置
【发布时间】:2017-12-29 19:16:53
【问题描述】:

我对 python 非常陌生。我需要一个代码来获取推文及其被标记或地理标记的推文的位置。

我有代码可以根据给定的哈希标签将推文导出到 csv 文件中,我想要添加另一列,并指定推文的发布位置。

请帮帮我。

代码如下,

import tweepy
import csv
import pandas as pd
####input your credentials here
consumer_key = ''
consumer_secret = ''
access_token = '-'
access_token_secret = ''

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth,wait_on_rate_limit=True)


csvFile = open('mydoc.csv', 'a')
#Use csv Writer
csvWriter = csv.writer(csvFile)

for tweet in tweepy.Cursor(api.search,q="#iPhoneX",count=100,
                       lang="en",
                       since="2017-01-01").items():
print (tweet.created_at, tweet.text)
csvWriter.writerow([tweet.created_at, tweet.text.encode('utf-8')])

我非常需要它。请帮助!!!

【问题讨论】:

  • 你试过python-twitter吗?
  • Tweepy?我用过。

标签: python twitter geotagging


【解决方案1】:

我认为你可以这样做:

for tweet in tweepy.Cursor(api.search, q="#iPhoneX", count=100, lang="en",
                           since="2017-01-01").items():
    if tweet.coordinates or tweet.geo:
        print(tweet.id_str, tweet.coordinates, tweet.geo)

您可以看到tweet 对象(也称为statushere 的结构。不同的字段对应:

  • coordinates: "表示用户或客户端应用程序报告的此推文的地理位置。内部坐标数组的格式为 geoJSON(先经度,后纬度)"
  • place:“当存在时,表示推文关联(但不一定源自)Place”。当用户为推文标记地点时,就会发生这种情况。
  • geo:“已弃用。请改用 coordinates 字段。此已弃用属性的坐标格式为 [lat, long],而所有其他推文地理格式为 [long, lat]。 "

【讨论】:

  • 每当我传递坐标时,对于任何主题标签,我都会得到无。
  • 我修改了答案以获取字典。告诉我它是否不起作用。这些字段完全有可能等于None。这意味着该推文没有coordinates,也没有place,也没有geo,因为用户不想分享他的位置
  • coordinates = tweet_json["coordinates"] TypeError: string indices must be integers
  • 无论他的地理位置标签如何,是否有机会从该人发推文的位置获取信息。
  • 我更改了代码。看一下,它只在有coordinatesgeo 而不是None 时打印。它很少发生,但确实会发生。如果此人启用了地理定位,这两个字段表示此人正在发推文的位置。如果没有,那就是None,你无能为力!
猜你喜欢
  • 2014-12-30
  • 2019-07-19
  • 1970-01-01
  • 2017-09-16
  • 2017-03-11
  • 2015-03-27
  • 1970-01-01
  • 1970-01-01
  • 2016-03-07
相关资源
最近更新 更多