我正在尝试找到捕获响应头下列出的链接的最佳方法,就像这个,我正在使用
python请求模块.下面是在
Python Requests页面上有Link Headers部分的链接:
docs.python-requests.org/en/latest/user/advanced/
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'}
请注意>在“最后”之后,在请求示例中并非如此,我似乎无法弄清楚如何解决这个问题.
解决方法
您可以手动解析标头的值.为了简化操作,您可能希望使用请求的解析功能
parse_header_links
作为参考.
或者你可以做一些查找/替换并使用原始的parse_header_links
In [1]: import requests In [2]: d = {'content-length': '12276',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'}]
如果>和<之间可能有一个或两个空格.那么你需要用正则表达式替换.