【问题标题】:Resolve masked/shortened URL twint is scraping from twitter解决从 twitter 抓取的屏蔽/缩短 URL twint
【发布时间】:2021-03-13 18:31:26
【问题描述】:

我正在使用 twint 来抓取 Twitter 个人资料。

当我运行这个脚本时:

    c = twint.Config()
    c.Username = username
    c.Store_object = True
    c.Store_object_users_list = users
    c.Hide_output = True
    twint.run.Lookup(c)
    try:
        userna = users[0]
    except:
        continue
    web = userna.url

我得到的是屏蔽/缩短的 URL,而不是真实的。我怎样才能得到真正的网址?

你有什么建议?

【问题讨论】:

    标签: python redirect web-scraping twitter twint


    【解决方案1】:

    以下工作。

    import requests
    
    
    resp = requests.head(short_link)
    resp.status_code
    true_url = resp.headers["Location"]
    

    【讨论】:

    • 我添加了一个小修复,希望你没问题。
    【解决方案2】:

    前言:此答案基于我评估UVuuMe's answer(初始版本)的结果和发现。


    要将缩短的 URL 转换为它所代表的完整 URL,您可以使用 twint 间接附带的包 requests(它是 googletransx 所必需的,这是您已经安装的 twint 所必需的,所以不需要pip install requests)。

    Send a HEAD request,然后检查响应的status_code 是否为303,然后才读取location 标头;在其他情况下,location 将出现在响应中,但不会出现在 HTTP 200 OK 的情况下。

    import requests
    
    # Short URL for a Python Requests Tutorial
    short_url = 'https://youtu.be/tb8gHvYlCFs'
    
    res = requests.head(short_url)
    if res.status_code == 303: # "See Other"
        full_url = res.headers['location']
    elif res.status_code == 200: # "OK"
        # let's conclude that short_url is already what we are looking for
        full_url = short_url
    else:
        # replace by your error handling:
        assert(False)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-26
      • 2018-01-31
      • 1970-01-01
      • 2018-12-10
      • 2021-06-28
      • 2021-11-13
      • 2015-06-08
      • 1970-01-01
      相关资源
      最近更新 更多