Python:Twitter使用“请求(POST)”功能进行抓取

时间:2013-10-25 14:17:13

标签: python twitter twython

我正在尝试使用twython包来删除Twitter数据。 由于我正在处理大量的twitter句柄,我无法使用twitter.lookup_user(user_id=user_batch)命令 - 所以我改为尝试使用 user_dict_batch = tw.request(user_url, method='POST')

现在,根据twython文档,函数request定义如下:

 request(endpoint, method='GET', params=None, version='1.1')
 Return dict of response received from Twitter’s API

 Parameters:     
 endpoint (string) – (required) Full url or Twitter API endpoint (e.g. search/tweets)
 method (string) – (optional) Method of accessing data, either GET or POST. (default GET)
 params (dict or None) – (optional) Dict of parameters accepted by Twitter API endpoint 
 version (string) – (optional) Twitter API version to access (default 1.1)

 Return type:   
 dict

我的问题是,“Twitter API端点”究竟是什么?例如,如果我想废弃有关Twitter手柄为3Degrees_Inc的用户的信息,那么该特定用户的Twitter API endpoint是什么?我尝试使用'https://twitter.com/3Degrees_Inc'作为参数endpoint的值,但它一直在向我扔Twitter API 403 (forbidden) error ....

感谢,

1 个答案:

答案 0 :(得分:0)

首先,twython是RESTfult twitter API的总结,其文档可以find here。因此,如果您对API users/lookup感兴趣,则其端点为users/lookup。注意这个api接受POST请求,因为对那么多用户的请求可能超过GET限制。

但是简短的演练twython文档显示lookup_user是在EndpointMixin中实现的,并且根据docs实现了这个相同的端点接口,因此你可以使用twitter.lookup_user(user_id = [user1,user2,user3])

def lookup_user(self, **params):
    """Returns fully-hydrated user objects for up to 100 users per request,
    as specified by comma-separated values passed to the user_id and/or screen_name parameters.

    Docs: https://dev.twitter.com/docs/api/1.1/get/users/lookup

    """
    return self.post('users/lookup', params=params)