1

我正在使用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,而不是真实的 URL。我怎样才能得到真正的网址?

你有什么建议?

4

2 回答 2

2

以下作品。

import requests


resp = requests.head(short_link)
resp.status_code
true_url = resp.headers["Location"]
于 2021-01-21T18:26:23.277 回答
2

前言:这个答案基于我评估UVuuMe 的答案(在它的初始版本中)的结果和发现。


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

发送 HEAD 请求,然后检查响应的status_codefor 303,然后才读取location标头;在其他情况下, alocation会出现在响应中,但不会出现在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)
于 2021-01-27T14:00:51.093 回答