Python请求在网站上发布不起作用

时间:2016-03-01 04:42:46

标签: python cookies web-scraping python-requests

我正在尝试使用Python请求从https://www.ura.gov.sg/realEstateIIWeb/resiRental/search.action获取属性信息。使用Chrome我检查了POST请求并使用请求进行了模拟。我使用会话来维护cookie。当我尝试我的代码时,从网站返回的是“搜索查询中缺少参数”,所以我的请求显然有问题(虽然不明显是什么)。

进行一些挖掘时,我在搜索端执行request.get时没有得到一个cookie,所以我手动添加了。仍然没有去。我也尝试完全模拟请求标头,但仍然没有返回正确的结果。

我唯一能让它工作的时候是我手动将cookie从我的浏览器复制到Python请求对象。

url = 'https://www.ura.gov.sg/realEstateIIWeb/resiRental/submitSearch.action;jsessionid={}'

values = {'submissionType': 'pn',
          'from_Date_Prj': 'JAN-2014',
          'to_Date_Prj': 'JAN-2016',
          '__multiselect_projectNameList': '',
          'selectedProjects': '10 SHELFORD',
          '__multiselect_selectedProjects': '',
          'propertyType': 'lp',
          'from_Date': 'JAN-2016',
          'to_Date': 'JAN-2016',
          '__multiselect_postalDistrictList': '',
          '__multiselect_selectedPostalDistricts': ''}
header1 = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Accept-Encoding': 'gzip, deflate, sdch',
    'Accept-Language': 'en-US,en;q=0.8,nb;q=0.6,no;q=0.4',
    'Cache-Control': 'max-age=0',
    'Connection': 'keep-alive',
    'Host': 'www.ura.gov.sg',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36'
}

headers = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'en-US,en;q=0.8,nb;q=0.6,no;q=0.4',
    'Cache-Control': 'max-age=0',
    'Connection': 'keep-alive',
    'Content-Type': 'application/x-www-form-urlencoded',
    'Host': 'www.ura.gov.sg',
    'Origin': 'https://www.ura.gov.sg',
    'Referer': 'https://www.ura.gov.sg/realEstateIIWeb/resiRental/search.action',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36'
}

with requests.Session() as r:
    page1 = r.get('https://www.ura.gov.sg/realEstateIIWeb/resiRental/search.action', headers=header1)
    requests.utils.add_dict_to_cookiejar(r.cookies, {'BIGipServerpl-prod_iis_web_v4': '3334383808.20480.0000'})
    page2 = r.post(url.format(r.cookies.get_dict()['JSESSIONID']), data=values, headers=headers)

0 个答案:

没有答案