我试图找到捕获响应标题下列出的链接的最佳方法,就像这个和我使用python请求模块一样。下面是在Python Requests页面上有Link Headers部分的链接: docs.python-requests.org/en/latest/user/advanced /
但是,在我的情况下,我的回复标题包含如下链接:
{'content-length': '12276', 'via': '1.1 varnish-v4', 'links': '<http://justblahblahblah.com/link8.html>;rel="last">,<http://justblahblahblah.com/link2.html>;rel="next">', 'vary': 'Accept-Encoding, Origin'}
请注意&gt;在&#34;最后&#34;在请求示例中并非如此,我似乎无法弄清楚如何解决这个问题。
答案 0 :(得分:14)
requests
已经提供了一种访问链接标题
response.links
它返回链接标题值的字典,可以使用
轻松解析response.links['next']['url']
获取所需的值。
答案 1 :(得分:7)
您可以手动解析标题的值。为了简化操作,您可能希望使用请求的解析函数parse_header_links
作为参考。
或者你可以做一些查找/替换并使用原始parse_header_links
In [1]: import requests
In [2]: d = {'content-length': '12276', 'via': '1.1 varnish-v4', 'links': '<http://justblahblahblah.com/link8.html>;rel="last">,<http://justblahblahblah.com/link2.html>;rel="next">', 'vary': 'Accept-Encoding, Origin'}
In [3]: requests.utils.parse_header_links(d['links'].rstrip('>').replace('>,<', ',<'))
Out[3]:
[{'rel': 'last', 'url': 'http://justblahblahblah.com/link8.html'},
{'rel': 'next', 'url': 'http://justblahblahblah.com/link2.html'}]
如果>,
和<
之间可能有一两个空格,那么您需要使用正则表达式替换。