use*_*085 12 python header hyperlink python-requests
我正在尝试找到捕获响应头下列出的链接的最佳方法,就像这个,我正在使用python请求模块.下面是Python Requests页面上链接标题部分的链接: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'}
Run Code Online (Sandbox Code Playgroud)
请注意>在"最后"之后,这不是请求示例中的情况,我似乎无法弄清楚如何解决这个问题.
小智 26
已经有一种方法requests可以访问链接头
response.links
Run Code Online (Sandbox Code Playgroud)
它返回链接标题值的字典,可以使用进一步解析
response.links['next']['url']
Run Code Online (Sandbox Code Playgroud)
获得所需的值.
您可以手动解析标头的值.为了简化操作,您可能希望使用请求的解析功能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'}]
Run Code Online (Sandbox Code Playgroud)
如果之间可能有一两个空格>,,<则需要使用正则表达式替换.
| 归档时间: |
|
| 查看次数: |
4973 次 |
| 最近记录: |