Flask:如何将 url 作为输入传递?

Flask: How to pass url as an input?

要求是将 url 作为输入传递给端点。

url 可能如下所示:

"google.com:443/something/something.html?q=go+lang"

如何将它作为 localhost:5001/api/google.com:443/something/something.html?q=go+lang

传递给我的 api get 方法

目前,我正在使用 Flask 和 Flask-restful 即使我将 url 编码为

google.com%3A443%2Fsomething%2Fsomething.html%3Fq%3Dgo%2Blang

然后传给我的api

api.add_resource(UrlInfo, '/api/<encoded_url>')

系统不会把它当作一个整体。它将对其进行解码 return 404

请问有没有合适的方法可以让url整体通过? url 可能在路径中包含多个级别(斜线)。我该如何处理?

谢谢

尝试

api.add_resource(UrlInfo, '/api/<path:encoded_url>')

参考:https://flask.palletsprojects.com/en/1.1.x/quickstart/#variable-rules


这是我试过的,绝对有效:

route('/testurl/<path:input_url>')
def testurl(input_url):
    return input_url

URL 调用:http://127.0.0.1:5000/codesubmission/testurl/http://www.google.com/testthisout/

页面输出:http://www.google.com/testthisout/

所以,您只是想遍历 URL 列表?这就是全部?下面的示例代码和反馈。

from bs4 import BeautifulSoup as BS
import requests  
import pandas as pd  

url_list = ['http://www.no1.com',
'http://www.no2.com',
'http://www.no3.com']
   for link in url_list: