如何使用请求模块在python3中遍历URl

时间:2019-06-02 07:53:52

标签: python-3.x

我正在从URL中具有ID的API提取数据,并从文件中遍历一组ID。我正在将标头和有效负载传递给服务器

www.example.com/<id>

但是请求模块不允许我将ID添加到使响应404的URL中。有人可以帮助您如何在for循环中迭代多个URL吗?

我尝试了字符串连接和格式样式,但没有帮助。

with open('alerts_id') as ids:
    for id in ids:
        url = "www.example.com/{}".format(id)
        print(url)
        headers = {
                  'content-type': "application/json",
                  'prefer': "status 200",
                  'Authorization': "Basic xxxxxx"
                  }
        payload = ""
        response = requests.get(url ,data=payload, headers=headers, verify=False)
        print(response.text)

我期望API的输出,但是找不到。但是当我手动传递ID时。有效

输出:

www.example.com/24568

未找到

1 个答案:

答案 0 :(得分:0)

根据您打印的URL,您的程序似乎正常工作。该URL www.example.com/24568实际上是404 Not Found。击中该URL后所看到的页面将在服务器中配置为在404出现的情况下显示。

验证1 :curl命令

C:\Users\kamal>curl -Iks www.example.com/24568
HTTP/1.1 404 Not Found
Accept-Ranges: bytes
Cache-Control: max-age=604800
Content-Type: text/html; charset=UTF-8
Date: Mon, 03 Jun 2019 15:57:12 GMT
Expires: Mon, 10 Jun 2019 15:57:12 GMT
Last-Modified: Mon, 03 Jun 2019 06:56:08 GMT
Server: ECS (oxr/8313)
Vary: Accept-Encoding
X-Cache: 404-HIT
Content-Length: 1270

验证2 :浏览器的“网络”标签(右键>>检查元素>>网络)

enter image description here