我正在尝试分析此页的搜索结果: https://entp.hud.gov/idapp/html/condlook.cfm
import requests
payload = {
'fapproval_method':'NEW',
'fsorted_by':'condo_name',
'fstate':'WA',
'fcountry':'',
'fcondo_id':'',
'fcondo_name':'',
'fcity':'',
'fzip':'',
'fstatus_code':'A',
'fsearch_type':'B',
'fbegin_mo':'',
'fbegin_dy':'',
'fbegin_yr':'',
'fend_mo':'',
'fend_dy':'',
'fend_yr':'',
'came_from':'oth',
'in_fhac':'true'
}
r = requests.post('https://entp.hud.gov/idapp/html/condlook.cfm', data=payload)
print(r.text)
我试着替换condlook.cfm公司共管1.cfm,但无效。它只返回预先填充值的同一页,而不是结果页。在
首先,正如@MartijnPieters所评论的,您需要发布到}cookies。您必须指定referer,因为显然
condo1.cfm
,因为表单就是在那里发布的。其次,使用requests.Session()
允许第一页(condlook.cfm
)设置CFID
和{condo1.cfm
有一些逻辑可以不返回没有referer集的结果。最后,您的payload
中有一个拼写错误:fcountry
必须是fcounty
。在值得一提的是,我使用Chrome的网络检查器并查看HTTP请求头来解决这个问题。我怀疑}是必需的。在
User-Agent
是必需的(一些站点寻找一个“常规浏览器”),但是在这个例子中{相关问题 更多 >
编程相关推荐