【已解决】爬虫获取网站响应头的location参数失败

MyModHeaven3月前0

如下图:需要获取此网站响应头的 location 参数 然而以失败告终: 返回的响应头里面没有 location 这个参数,而且状态码也不是 302 这是图中的代码: import requests headersvalue = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 Edg/100.0.1185.44',                 'referer': 'https://www.haokongbu1.com',                 'authority': 's.haokongbu1.com',                 } data = {'show': 'title,ftitle,actor', 'keyword': '战狼'} r = requests.post('https://s.haokongbu1.com/e/search', data=data, headers=headersvalue) print(r.status_code, r.headers) 多谢指点





不挨个回复了,总结一下,这件事就是个乌龙。网站 post 请求中的是 keyboard ,而我当时想当然的看成了 keyword 。所以一直失败,怪不得百度没找到什么有用的信息。。。第一次弄这个,出了问题不知道该往哪个方面找原因,以后就知道了

至于评论区的热心回答:

1. 说 allow_redirects 这个参数的,我第一次见这个参数,去 requests 官方文档上找了找,知道是什么东西了:
allow_redirects (bool) -- (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection. Defaults to True.


改成 Flase 之后,确实返回的状态码是 302 了,而且响应头里也有 location 这个参数了。但是这个参数是 True的话,就能自动跳转到定向网址了,就不必多此一举了

2. 所以那位贴出来代码的热心吾友,这个参数默认值就是 True,我失败是因为 keyboard 这个小错误。多谢了

3. 还有个说 steam 参数的:

stream -- (optional) if False, the response content will be immediately downloaded.



把相应内容下载??不研究了,用到了再说吧。同样感谢这位热心人!!!

最新回复 (12)
  • [Python] 纯文本查看 复制代码import requests headers = { "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36", "referer": "https://www.haokongbu1.com/" } def get_html(): data = { "show":"title,ftitle,actor", "keyboard":"好" } res = requests.post(url = "https://s.haokongbu1.com/e/search/",data=data,headers=headers,allow_redirects=True) print(res.url) if __name__ == '__main__': get_html()
  • 楼主MyModHeaven3月前
    引用3
    Zhili.An 发表于 2022-4-25 16:28
    emmm,他这个重定向了。为什么不直接访问呢,直接使用get呗

    因为我是想在网站内搜索内容,搜索结果的网页是重定向后的,没法直接得到重定向后的网址
  • Request中Allow 那个参数设为false
  • Zhili.An3月前
    引用5
    emmm,他这个重定向了。为什么不直接访问呢,直接使用get呗
  • YuanFang0w0 发表于 2022-4-25 16:27
    Request中Allow 那个参数设为false

    Allow开头的一个参数,不是参数名字就是allow,那个就是控制请求重定向的一个参数,默认true
  • sinydan3月前
    引用7
    请求的时候加参数stream=True
  • allow_redirects=False
  • shallon3月前
    引用9
    用burpsuit?
  • zuxin5213月前
    引用10
    过来学习下
  • kaoyanya3月前
    引用11
    看得迷迷糊糊的
  • richardzxq3月前
    引用12
    谢谢分享!
  • feiyu3613月前
    引用13
    这样的写法,启发了我,谢谢
  • 游客
    14
返回