0

所以我有这两个脚本:

redditScraper.py

# libraries
import urllib2
import json

# get remote string
url = 'http://www.reddit.com/new.json?sort=new'
response=urllib2.urlopen(url)

# interpret as json
data = json.load(response)
#print(data)
response.close()


print data['data']['children'][3]['data']['title']
print data['data']['children'][3]['data']['permalink']
print data['data']['children'][3]['data']['subreddit']

和 minerTweets.py

#!/usr/bin/env python
import sys
from twython import Twython
CONSUMER_KEY = 'XXXXXXXXXXXXXXXX'
CONSUMER_SECRET = 'XXXXXXXXXXXXXXXX'
ACCESS_KEY = 'XXXXXXXXXXXXXXXX'
ACCESS_SECRET = 'XXXXXXXXXXXXXXXX'

api = Twython(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_KEY,ACCESS_SECRET) 

api.update_status(status=sys.argv[1])

这是一个 Raspberry Pi,它将更新一个 twitter 帐户(用于学术目的)。作为 python 的新手,我尝试一次编写一个脚本的每个部分。我有一个脚本可以成功地删除 reddit“新”页面的标题、链接和 subreddit 并打印出来。然后我有另一个成功地点击了 Twython API 来更新一个状态,该状态正在使用 sys.argv 进行测试。我想要完成的脚本做的是从 redditScraper.py 中获取打印的数据,并使用我的 minerTweets.py 脚本更新 twitter 帐户的状态。我到处看了看,因为我只是在学习 python,所以我对实现这一目标的最佳方法的了解是有限的。

我提前感谢任何建议。谢谢!

4

1 回答 1

0

您可以将结果存储redditScrapper.py到文件中,然后minerTweets.py从那里获取数据:

with open('test.txt', 'w') as fp:
    data = json.load(response)
    json.dump(data, fp)

test.txt存放在同一目录下。现在,唯一剩下的就是阅读它:

with open('test.txt') as fp:
    api = Twython(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_KEY,ACCESS_SECRET) 
    data = json.load(fp)
    api.update_status(data['data']['children'][3]['data']['title'])

编辑:如果你想合并脚本,这并不难。

import urllib2
import json
from twython import Twython

CONSUMER_KEY = 'XXXXXXXXXXXXXXXX'
CONSUMER_SECRET = 'XXXXXXXXXXXXXXXX'
ACCESS_KEY = 'XXXXXXXXXXXXXXXX'
ACCESS_SECRET = 'XXXXXXXXXXXXXXXX'

# get remote string
url = 'http://www.reddit.com/new.json?sort=new'
response=urllib2.urlopen(url)

# interpret as json
data = json.load(response)
#print(data)
response.close()

api = Twython(CONSUMER_KEY,CONSUMER_SECRET,ACCESS_KEY,ACCESS_SECRET) 

d = data['data']['children'][3]['data']
title = d['title']
permalink = d['permalink']
subreddit = d['subreddit']

api.update_status(status=title+permalink+subreddit) #or you can post this as different 
#status, depends on how you'd like to format the tweet.
于 2013-12-01T22:52:34.670 回答