Ghost__9 2018-06-10 18:48 采纳率: 0%
浏览 2205
已采纳

python request 库POST请求从ajax爬取数据遇到formdata不会处理了

目标爬取网站为http://www.ccgp-shaanxi.gov.cn/notice/list.do?noticetype=3&province=province

form data为:
form data

以下为我的代码:

import requests
from urllib.parse import urlencode

base_url = 'http://www.ccgp-shaanxi.gov.cn/notice/noticeaframe.do?noticetype='
noticetype = '3'
url = base_url + noticetype
headers = {
    'Host': 'www.ccgp-shaanxi.gov.cn',
    'Referer': 'http://www.ccgp-shaanxi.gov.cn/notice/list.do?noticetype=3&province=province',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36',
    'X-Requested-With': 'XMLHttpRequest'}

data = {
    'parameters[purcatalogguid]': '',
    'page.pageNum': '',
    'parameters[title]': '税',
    'parameters[startdate]': '',
    'parameters[enddate]': '',
    'parameters[regionguid]': '6101',
    'parameters[projectcode]': '',
    'province': '',
    'parameters[purmethod]': ''
}

data = urlencode(data)
print(data)
request = requests.post(url, data=data, headers=headers)
# print(request.text)
print(request.headers)


但是获取到的信息反应、感觉formdata貌似没有起作用,因本人属于新手小白,各位大神能指点指点吗?

可以执行一下帮忙分析分析吗?

展开全部

  • 写回答

2条回答 默认 最新

  • 我不喜欢这个世界 2018-06-10 22:25
    关注

    刚看了一下你的代码:

    改了一下,我加了查询日期,6月1日到6月11的。其他字段自己加上就行了:

    import requests
    url = "http://www.ccgp-shaanxi.gov.cn/notice/noticeaframe.do?noticetype=3"
    headers ={
    "Host": "www.ccgp-shaanxi.gov.cn",
    "Connection": "keep-alive",
    "Cache-Control": "max-age=0",
    "Upgrade-Insecure-Requests": "1",
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
    "Accept-Encoding": "gzip, deflate",
    "Accept-Language": "zh-CN,zh;q=0.9",
    "Cookie": "JSESSIONID=7FE3D1F9A78DB03F2C5D49090F024A75"
    }
    form_data = [('parameters[purcatalogguid]', ''),
    ('parameters[title]', ''),
    ('parameters[startdate]', '2018-06-01'),
    ('parameters[enddate]', '2018-06-11'),
    ('parameters[regionguid]', '610001'),
    ('parameters[projectcode]', ''),
    ('province', ''),
    ('parameters[purmethod]', ''),
    ]
    page = requests.post(url=url, headers=headers, data=form_data).text
    print(page)

    
    

    展开全部

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部