【问题标题】:Trying update Twitter status with scraper data using Twython. Unsure on what to do尝试使用 Twython 使用爬虫数据更新 Twitter 状态。不确定该怎么做
【发布时间】:2013-12-01 22:27:04
【问题描述】:

所以我有这两个脚本:

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,所以我对实现这一目标的最佳方法的了解是有限的。

感谢您提前提出的任何建议。谢谢!

【问题讨论】:

    标签: python raspberry-pi reddit scraper twython


    【解决方案1】:

    您可以将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.
    

    【讨论】:

    • 有没有办法让它在同一个脚本中运行?
    • 啊..这就是你想要的..是的,它更容易。
    • 是的,现在说得通了。但是,当我在终端中运行脚本时收到此消息:文件“/usr/lib/python2.7/urllib2.py”,第 528 行,在 http_error_default raise HTTPError(req.get_full_url(), code, msg, hdrs , fp) urllib2.HTTPError: HTTP 错误 429: 未知
    • 还有更多,但它不会让我发布其余的:/
    • 哦等等!我想到了。帖子太长了,所以我将不得不发布比我这里少的内容。非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 1970-01-01
    相关资源
    最近更新 更多