超时错误:Pandas中的JSON请求

时间:2017-04-29 06:57:58

标签: python json pandas numpy python-requests

我有25000个条目的pandas数据框,在一列中我有所有的URL。 我想要做的是检索所有这些URL的JSON。 实现这一点的有效方法是什么,因为简单的循环会导致超时错误? 此外,我也尝试过使用time.sleep()但无济于事。那么会发生一些行被读取而一些行不被读取。

import time
def get_reviews(review):
    reviews = []
    try:
        response = requests.get(review)
        json_data = response.json()
        for j in json_data:
            if j['language'] == 'en':
                reviews.append(j['text'])
    except:
        time.sleep(2)
    return reviews

batch_size = 20
start = 0
end = 10
for epoch in range(int(data.shape[0]/batch_size)):
    data['reviews'][start:end] = data['reviews'][start:end].apply(get_reviews)
    start += batch_size
    end += batch_size
print(data.head(30))

1 个答案:

答案 0 :(得分:0)

在函数上放置重试装饰器。我有一个类似的问题,我通过循环解决,直到我得到网页。

http://winstonlarson.com/scraping-timeouts