python,爬虫遇到重定向页面,如何获取动向后地址的response headers里的内容?

爬虫大致流程是这样的

图片说明

我想获取resul.jsf里Location的值

图片说明

下面是我写的代码,但是得不到结果,求大佬帮忙看一下。

我首先访问这个站点https://patentscope2.wipo.int/search/en/search.jsf ,从页面信息中获取ViewData的值,然后构建post data,把data加进去再次访问这个网站。

图片说明

import re
import requests
s = requests.Session()
r = s.get('https://patentscope2.wipo.int/search/en/search.jsf')
resp = r.text
# 获取ViewState值
viewstate = re.findall('ViewState:0.*value=\"([0-9\-:]*)\"',resp)[0]

# 构建data字典
searchfp = 'US20180094236'
data={'javax.faces.partial.ajax': 'true',
     'javax.faces.source': 'simpleSearchForm:commandSimpleFPSearch',
     'javax.faces.partial.execute': '@all',
     'simpleSearchForm:commandSimpleFPSearch': 'simpleSearchForm:commandSimpleFPSearch',
     'simpleSearchForm': 'simpleSearchForm',
     'simpleSearchForm:j_idt216_focus': '',
     'simpleSearchForm%3Aj_idt206_input': 'FP',
     'simpleSearchForm:fpSearch': searchfp,
     'javax.faces.ViewState': viewstate}
r = s.post('https://patentscope2.wipo.int/search/en/search.jsf',data = data)

然后得到一个result.jsf连接地址,再访问这个连接却得不到目标数据

图片说明

# 获取/result.jsf链接地址
vid = re.findall('_vid=([A-Z0-9\-]*)\"',r.text)[0]
re_url = 'https://patentscope2.wipo.int/search/en/result.jsf?_vid='+vid

# 访问/result.jsf后却没有去到正确的地方
r = s.get(re_url)
resp = r.text

print(r.headers)
print(r.status_code)
print(resp)
# 这里status_code时500,并且有页面内容,但不是目标页面
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐