代码之家  ›  专栏  ›  技术社区  ›  Alex

为什么我在尝试使用snscraper时会出现这个错误?

  •  0
  • Alex  · 技术社区  · 3 年前

    以下代码:

    import time
    import pandas as pd
    
    # pip install snscrape
    !pip install snscrape
    
    # Pull Twitter data using SNScrape
    import snscrape.modules.twitter as sntwitter
    
    scraper = sntwitter.TwitterSearchScraper("#python")
    
    for tweet in scraper.get_items():
      break
    
    tweet
    

    不断抛出此错误:

    “错误:snscrape.base:检索时出错 https://api.twitter.com/2/search/adaptive.json?include_profile_interstitial_type=1&include_blocking=1&include_blocked_by=1&include_followed_by=1&include_want_retweets=1&include_mute_edge=1&include_can_dm=1&include_can_media_tag=1&include_ext_has_nft_avatar=1&include_ext_is_blue_verified=1&include_ext_verified_type=1&skip_status=1&cards_platform=Web-12&include_cards=1&include_ext_alt_text=true&include_ext_limited_action_results=false&include_quote_count=true&include_reply_count=1&tweet_mode=extended&include_ext_collab_control=true&include_ext_views=true&include_entities=true&include_user_entities=true&include_ext_media_color=true&include_ext_media_availability=true&include_ext_sensitive_media_warning=true&include_ext_trusted_friends_metadata=true&send_error_codes=true&simple_quoted_tweet=true&q=%23python&tweet_search_mode=live&count=20&query_source=spelling_expansion_revert_click&pc=1&spelling_corrections=1&include_ext_edit_control=true&ext=mediaStats%2ChighlightedLabel%2ChasNftAvatar%2CvoiceInfo%2Cenrichments%2CsuperFollowMetadata%2CunmentionInfo%2CeditControl%2Ccollab_control%2Cvibe : 已阻止(403)关键:snscrape.base:4个请求 https://api.twitter.com/2/search/adaptive.json?include_profile_interstitial_type=1&include_blocking=1&include_blocked_by=1&include_flowed_by=1&include_want_retweets=1&include_mute_edge=1&include_can_dm=1&include_can_media_tag=1&include_ext_has_nft_avatar=1&include_ext_is_blue_verified=1&include_ext_verified_type=1&skip_ status=1&cards_platform=Web-12&include_cards=1&include_ext_alt_text=true&include_ext_limited_action_results=false&include_quote_count=真&include_reply_count=1&tweet_mode=扩展&include_ext_collab_control=true&include_ext_views=true&include_entities=真&include_user_entities=true&include_ext_media_color=true&include_ext_media_availability=true&include_ext_sensitive_media_warning=true&include_ext_trusted_friends_metadata=true&send_error_codes=真&simple_quoted_tweet=true&q=%23python&tweet_search_mode=live&计数=20&query_source=spelling_expansion_revert_click&pc=1&spelling_corrections=1&include_ext_edit_control=true&ext=mediaStats%2HighlightedLabel%2HasNftAvatar%2VoiceInfo%2Enrichments%2SuperFollowMetadata%2UnmentionInfo%2EditControl%2Collab_control%2Vibe 失败了,放弃了。关键:snscrape.base:错误:被阻止(403), 被阻止(403),被阻止(401),被阻塞(403) ---------------------------------------------------------------------------ScraperException Traceback(最近调用 last)在<细胞系:12>() 10 scraper=sntwitter.TwitterSearchScraper(“#python”) 11 --->scraper.get_items()中的tweet为12: 13断裂 14 4帧/usr/local/lib/python3.9/dist-packages/snsscrape/base.py in _请求(self,method,url,params,data,headers,timeout,responseOkCallback,allowRedirects,proxys) 245_logr.fatal(消息) 246 _logr.fatal(f'错误:{“,”.join(Errors)}') -->247引发ScraperException(消息) 248引发RuntimeError(“已达到无法访问的代码”) 249 ScraperException:4个请求 https://api.twitter.com/2/search/adaptive.json?include_profile_interstitial_type=1&include_blocking=1&include_blocked_by=1&include_flowed_by=1&include_want_retweets=1&include_mute_edge=1&include_can_dm=1&include_can_media_tag=1&include_ext_has_nft_avatar=1&include_ext_is_blue_verified=1&include_ext_verified_type=1&skip_ status=1&cards_platform=Web-12&include_cards=1&include_ext_alt_text=true&include_ext_limited_action_results=false&include_quote_count=真&include_reply_count=1&tweet_mode=扩展&include_ext_collab_control=true&include_ext_views=true&include_entities=真&include_user_entities=true&include_ext_media_color=true&include_ext_media_availability=true&include_ext_sensitive_media_warning=true&include_ext_trusted_friends_metadata=true&send_error_codes=真&simple_quoted_tweet=true&q=%23python&tweet_search_mode=live&计数=20&query_source=spelling_expansion_revert_click&pc=1&spelling_corrections=1&include_ext_edit_control=true&ext=mediaStats%2HighlightedLabel%2HasNftAvatar%2VoiceInfo%2Enrichments%2SuperFollowMetadata%2UnmentionInfo%2EditControl%2Collab_control%2Vibe 失败了,放弃了。“

    我不知道为什么会出现这个错误。起初,我以为我达到了速率限制或其他什么,我的IP被屏蔽了,所以每次我遇到同样的错误时,我都会在几个不同的网络上用不同的设备和不同的谷歌帐户进行尝试。可能是python或snscraper版本的问题吗?

    0 回复  |  直到 3 年前
        1
  •  3
  •   Manan Virmani    3 年前

    这是因为snscrape在没有任何身份验证的情况下搜索Twitter数据,也就是说,它在不使用您的电子邮件、密码或身份验证密钥的情况下检索Twitter数据。 但现在,推特已经限制了在不登录推特网站的情况下搜索数据,也就是说,如果你在推特网站上注销了你的推特账户,你就没有搜索功能了。 因此,snscrape目前无法从推特网站提取推文数据。

    Twitter的功能可能会在未来发生变化,或者API可能会改进,但到目前为止,scscrape还不起作用。

    关于更多细节, check here

        2
  •  0
  •   Mqhele Mtawarira    3 年前

    推特已经屏蔽了snscrape和所有报废工具。它改进了自己的API。所以目前snscrape没有访问twitter。从长远来看,情况可能会改变。