Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何使用请求模块在python3中迭代URl_Python 3.x - Fatal编程技术网

Python 3.x 如何使用请求模块在python3中迭代URl

Python 3.x 如何使用请求模块在python3中迭代URl,python-3.x,Python 3.x,我正在从URL中有ID的API中获取数据,并从文件中迭代一组ID www.example.com/ 但是请求模块不允许我将id添加到做出响应404的URL中。有人能帮助我们在for循环中迭代多个URL吗 我尝试了字符串连接和格式样式,但没有帮助 with open('alerts_id') as ids: for id in ids: url = "www.example.com/{}".format(id) print(url) head

我正在从URL中有ID的API中获取数据,并从文件中迭代一组ID

www.example.com/

但是请求模块不允许我将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


未找到

根据您打印的url,您的程序似乎工作正常。这个URL
www.example.com/24568
实际上是
404未找到
。点击此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:浏览器网络选项卡(右键单击>>检查元件>>网络)


尝试在python本身中打印变量
url
,查看url的格式。如果它给出404,这意味着它真的没有找到。但是,如果您能够在手动点击时得到响应,这意味着脚本生成的url中存在一些不匹配的内容。我尝试打印url并生成了url,但我怀疑当url传递到请求模块时,它不希望使用这种格式。