簡體   English   中英

使用Twitter的Streaming API時更改POST請求參數

[英]Change POST request parameters when using Twitter's Streaming API

我正在使用Python和RequestsTwitter的流API請求數據。 我想使用一組參數來請求數據,並在一段時間后,使用一組新參數來更改請求。

在下面的簡單工作示例中,我向Twitter流API請求帶有關鍵字“ python”的推文。 一個小時后,我向API詢問關鍵字“紅寶石”。 但是,為此,我創建了一個新的請求對象。 我沒有更改原始對象。

import requests
import json
import time

USER = 'user'
PW = 'pw'

def make_request(keyword):
    r = requests.post('https://stream.twitter.com/1/statuses/filter.json',
    data={'track': keyword}, auth=(USER,PW))

    for line in r.iter_lines():
        if line:
            print json.loads(line)

        if time.time() > start_of_last_request + 3600:
            break

count = 0

keywords = ['python', 'ruby']

while count < 2:
    start_of_last_request = time.time()

    make_request(keywords[count])

    count = count + 1

最終,我將需要每小時創建一個新查詢,並且我擔心會創建太多連接。

我的問題是:是否有更好的方法將請求更改為Twitter API? 我實際上是在創建多個連接嗎? 如果是這樣,如何避免這種情況? (有關如何關閉以前的連接的建議,但該解決方案對我而言並不合理。)

我將不勝感激任何幫助。 謝謝!

鏈接時,為了在完成請求后關閉連接,請將keep-alive值設置為False而不是默認的True

r = requests.post('https://stream.twitter.com/1/statuses/filter.json',
               data={'track': keyword}, auth=(USER,PW),
               config={'keep_alive':False})

完成連接后,這將確保關閉連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM