python - 如何通过 python 跟踪来自特定城市的推文并存储在 MongoDB 中?

标签 python mongodb twitter location pymongo

我想编写一段代码,从特定位置(例如一个城市)抓取所有推文,并通过 python 将它们放入 MongoDB 中。作为编程的新手,我已经设法从 Twitter 跟踪特定的主题标签,并使用以下代码将它们存储在 MongoDB 中:

01 import pycurl, json
02 import pymongo
03
04 STREAM_URL = "https://stream.twitter.com/1/statuses/filter.json"
05 WORDS = "track=#occupywallstreet"
06 USER = "myuser"
07 PASS = "mypass"
08
09 def on_tweet(data):
10    try:
11        tweet = json.loads(data)
12        db.posts.insert(tweet)
13        print tweet
14    except:
15        return
16

17 from pymongo import Connection
18 connection = Connection()
19 db = connection.occupywallstreet
20 conn = pycurl.Curl()
21 conn.setopt(pycurl.POST, 1)
22 conn.setopt(pycurl.POSTFIELDS, WORDS)
23 conn.setopt(pycurl.HTTPHEADER, ["Connection: keep-alive", "Keep-Alive: 3000"])
24 conn.setopt(pycurl.USERPWD, "%s:%s" % (USER, PASS))
25 conn.setopt(pycurl.URL, STREAM_URL)
26 conn.setopt(pycurl.WRITEFUNCTION, on_tweet)
27 conn.perform()

我如何跟踪地理定位的推文,即来自特定城市的推文?有什么方法可以改变上面的代码以满足我的需要?

谢谢!

最佳答案

你应该使用 locations本例中的参数:

import pycurl
import json

STREAM_URL = "https://stream.twitter.com/1/statuses/filter.json"
LOCATIONS = "locations=-74,40,-73,41"  # New York
USER = "myuser"
PASS = "mypass"


def on_tweet(data):
    try:
        tweet = json.loads(data)
        db.posts.insert(tweet)
        print tweet
    except:
        return


from pymongo import Connection

connection = Connection()
db = connection.occupywallstreet
conn = pycurl.Curl()
conn.setopt(pycurl.POST, 1)
conn.setopt(pycurl.POSTFIELDS, LOCATIONS)
conn.setopt(pycurl.HTTPHEADER, ["Connection: keep-alive", "Keep-Alive: 3000"])
conn.setopt(pycurl.USERPWD, "%s:%s" % (USER, PASS))
conn.setopt(pycurl.URL, STREAM_URL)
conn.setopt(pycurl.WRITEFUNCTION, on_tweet)
conn.perform()

希望对您有所帮助。

关于python - 如何通过 python 跟踪来自特定城市的推文并存储在 MongoDB 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16518454/

相关文章:

Python 类变量或@property

python - X = X[:, 1]在Python中的含义

Mongodb 按日期排序

python - 从 Twitter XML 页面提取数据的列表问题

html - 推特网站如何防止页面加载之间出现白页?

javascript - Facebook 按钮未在 GWT Element.setInnerHTML() 中显示。未显示样式的推文按钮

python - 管理站点中的 Django DateTimeField 编辑

Python - 按用户名 chown 文件夹

mongodb - 解析stateful.yaml时出错:将YAML转换为JSON时出错:yaml:第35行:在此上下文中不允许映射值

javascript - 如何使用node js从mongodb获取数据并将其显示在表格中?