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个回答

刚看了一下你的代码:

改了一下,我加了查询日期,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)


Ghost__9
Ghost__9 对对对对、新手给弄混了、
一年多之前 回复
m0_38124502
我不喜欢这个世界 回复Ghost__9: post数据不会显示在 URL 中。get数据显示在url中,urlencode()对url进行编码为统一资源定位是合适的,没必要对post数据进行编码,编了以后反而会出现错误。
一年多之前 回复
Ghost__9
Ghost__9 恩、、、您能解释一下我 这样转码的话urlencode(data)是不对的吗?
一年多之前 回复

print(request.body)试试

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ajax之POST传值,FormData()
1、 POST传值 //post.php 接收文件<?php print_r($_POST); ?>//post.html<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>post</title> <script type="text/javascript">
post请求网站数据爬取!!!Python学习笔记!
对于刚开始学习Python的童鞋来说,对于网站的爬取可能很模糊,对网站的请求方式也不太了解。下面先简单介绍一下几种常见的网站请求方式,get、post
POST请求爬取数据实战
该视频教程主要讲解Python爬虫技术原理,与爬虫基础技术。Python爬虫入门+浏览器伪装与验证码识别。rn
Ajax实例,处理了中文乱码
一个Ajax的初学小例子,包括两个文件,getText.html,zipecode.jsp.在zipecode里输入1,2,3会从jsp里读取对应的city和prov并放到对应的文本框里。并且做了中文处理,输入“徐家汇”会得到邮编等。在Tomcat6下测试通过。
ajax总结:formdata,get,post,ajax等
ajax总结,load,get,post,ajax总结,还有formdata~~~
使用formdata提交ajax请求
var form = $(&quot;#form_id&quot;)[0]; var oFile = $(&quot;#media&quot;).get(0).files[0]; var formData = new FormData(form); //FormData可以一次性获取form表单的全部内容 formData.append(&quot;name&quot;,&quot;名字&quot;); //追加非form表单的内容 formData.append(...
python request库,爬取图片的讲解与应用
requests库在python的web应用中使用较多,一些小型爬虫也使用的较多,话不多说,上一段requests爬取糗事百科图片的代码。 # coding:utf-8 import requests from lxml import etree import webbrowser import os def requests_view(response): &quot;&quot;&quot; 使用默...
python接口测试之request请求四(post方法)
post方法传参也是json格式
Python3爬虫之urllib爬取异步Ajax数据,使用post请求!
ok,废话就不多说了,直接上手。今天爬取的是豆瓣电影的排行榜。 首先使用google浏览器的开发者工具,找到豆瓣的电影排行榜接口 https://movie.douban.com/j/chart/top_list?type=5&interval_id=100%3A90&action=&start=40&limit=20 分析这个url,发现后面的start=40&limit=20很像SQ
两个request 怎么 当 成一个 request处理了?
我在 page_load 里rn If Not Page.IsPostBack Thenrn dttbgroupMem.Columns.Add("OutageBlock")rn dttbgroupMem.Columns.Add("Start Time")rn dttbgroupMem.Columns.Add("End Time")rn dttbUnassigned.Columns.Add("OutageBlock")rn dttbUnassigned.Columns.Add("Start Time")rn dttbUnassigned.Columns.Add("End Time")rn end ifrn我用第一个浏览器开这页没事. 保留这个浏览器, 再开一个浏览器开这页就会报错,错误如下rnrnA column named 'OutageBlock' already belongs to this DataTable. rnrnSource Error: rnLine 142: 'rnLine 143: If Not Page.IsPostBack ThenrnLine 144: dttbgroupMem.Columns.Add("OutageBlock")rnLine 145: dttbgroupMem.Columns.Add("Start Time")rnLine 146: dttbgroupMem.Columns.Add("End Time")rnrn在新的页子里这个column 明明还没有加进去的,怎么会以经存在了呢 ??rnrn对了, dttbgroupMem 是 DataTable
python爬取ashx页面的post请求
我以一个类似的情况来提问,也是论坛中有个网友1年前提出的问题,但是他没有写出后续....rnrn网页地址:http://www.lzggzyjy.cn/InfoPage/InfoList.aspx?SiteItem=8rnrn需求:python post请求获取该页面(感觉很简单)rnrn分析页面:rn![图片说明](https://img-ask.csdn.net/upload/201803/18/1521356034_57752.png)rnrnrn![图片说明](https://img-ask.csdn.net/upload/201803/18/1521356049_933670.png)rnrn我把代码贴上来:rnrnrnrn```rn #! /usr/bin/env python3rn# -*- coding:utf-8 –*-rnrnrnimport requestsrnimport jsonrnrnimport sysrnreload(sys) rnsys.setdefaultencoding('utf-8')rnrnrndef testDownloadLanZhou():rn testUrl = 'http://www.lzggzyjy.cn/ajax/Controls_InfoListControl,App_Web_2ewqtbev.ashx?_method=getCurrentData&_session=rw'rn testHeaders = rn 'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36',rn 'Host':'www.lzggzyjy.cn',rn 'Referer':'http://www.lzggzyjy.cn/InfoPage/InfoList.aspx?SiteItem=8',rn 'X-Requested-With':'XMLHttpRequest',rn # "Content-Type":'text/plain;charset=UTF-8',rn "Cookie":'ASP.NET_SessionId=hcdc1tywt5dgszd5bziox4sc; SERVERID=b925605187c7d5d37f1395627a969c75|1521298751|1521298681'rn rnrn # testParams = '_method':'getCurrentData', '_session':'rw'rn testData = 'currentPage':'1', 'Query':''rnrn # 将dic 转换成json字符串rn # jsonDataString = json.dumps(testData)rn # print(jsonDataString)rn # print(type(jsonDataString))rnrn # # 对应每个参数添加换行隔开rn # newString = jsonDataString.replace(',', '\n')rn # print(newString)rnrn resq = requests.post(testUrl, headers=testHeaders, data=testData)rn print(resq.content)rn```rnrnrn这个请求怎么弄都不对,获取不到正确的html页面......请各位指点迷津rn rn rnrn
ajax请求的request
利用jquery与json数据形式结合,是看调用后台数据信息
Python爬虫之Ajax数据爬取
Python爬虫之Ajax数据爬取,通过Ajax实现爬取某微博博主的多篇文章
遇到的ajax关于post请求的问题
写在线markdown解析的时候,试了很久一直没有成功。因为服务端(node.js写的)显示req.body一直是空对象,显示以为是body-parser的问题。结果最后换成jquery发送请求成功了居然,最后才发现时原生ajax理解有问题。ajax在发送post请求传输json数据时,要先把json数据转化为字符串,另外一定要设置请求头!! xhr.open('post', ...
POST请求爬取数据实战1
本周课程主要讲解Python网络爬虫的基础内容。具体有:Python中的正则表达式,网络爬虫基础介绍,爬虫的工作原理,urllib、urllib3和requests库的使用,GET和POST请求抓取数据实战,网络爬虫中常见错误的处理,以及网页信息解析库的使用(Xpath,BeautifulSoup,PyQuery)。
POST请求爬取数据实战2
本周课程主要讲解Python网络爬虫的基础内容。具体有:Python中的正则表达式,网络爬虫基础介绍,爬虫的工作原理,urllib、urllib3和requests库的使用,GET和POST请求抓取数据实战,网络爬虫中常见错误的处理,以及网页信息解析库的使用(Xpath,BeautifulSoup,PyQuery)。
爬虫爬取get/post等请求的数据
(此文章认为大家有一定基础而作)一.请求地址       基于restful编程风格的崛起,不管是前端还是后端,大家应该对请求地址都不陌生。       一般大家获取页面请求地址可以直接用浏览器的开发者模式获取,如下面我用chrome截获本篇文章保存的请求地址:选择开发者模式-&amp;gt;Network;左边表示我们请求的网页,右边是具体参数;二、请求参数在General模块可以清楚的看到我们请求的地...
urllib:Post方式爬取AJAX加载的数据
Request请求对象的里有data参数,它就是用在POST里的,我们要传送的数据就是这个参数data,data是一个字典,里面要匹配键值对。 POST请求:代码模板 导入request模块 import urllib.request 代码模板 # 首先对data进行转码,转化成str类型 data = urllib.parse.urlencode(data) # post请求只...
Python 最简单爬虫爬取数据(二):简单POST请求
  对网页进行抓包,查看请求,获取相应的表单数据 构建好Form_data后,利用parse.urlencode进行标准化在进行utf8编码 请求头信息也要进行必要的设置 有时可能会抛出异常   这是不设置user-agent的情况,输出错误  设置以后正确显示...
python在post请求下爬取数据,返回的值为什么为空?
本人小白,尝试爬杭州市二手房挂牌信息,rn网址:http://jjhygl.hzfc.gov.cn/webty/gpfy/gpfySelectlist.jsp,rn代码如下rnrn```rnimport requestsrnurl = 'http://jjhygl.hzfc.gov.cn/webty/WebFyAction_getGpxxSelectList.jspx'rndata = 'page': 1rnheaders = 'Host': 'jjhygl.hzfc.gov.cn',rn 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0',rn 'Accept': 'text/html, */*; q=0.01',rn 'Accept-Language': 'en-US,en;q=0.5',rn 'Accept-Encoding': 'gzip, deflate',rn 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',rn 'X-Requested-With': 'XMLHttpRequest',rn 'Content-Length': '311',rn 'Connection': 'keep-alive',rn 'Referer': 'http://jjhygl.hzfc.gov.cn/webty/gpfy/gpfySelectlist.jsp',rn 'Cookie': 'ROUTEID=.lb6; JSESSIONID=2E78A1FE8DBC80F1CEEE20264BE96B1F.lb6; Hm_lvt_70e93e4ca4be30a221d21f76bb9dbdfa=1559115557; Hm_lpvt_70e93e4ca4be30a221d21f76bb9dbdfa=1559115557',rn 'Pragma': 'no-cache',rn 'Cache-Control': 'no-cache'rnr = requests.post(url, data =data, headers = headers)rnr.contentrnr.textrn```rn返回结果是rnrnrn```rnb'"list":[],"pageinfo":"\xe6\x9a\x82\xe6\x97\xa0\xe6\x95\xb0\xe6\x8d\xae"'rn'"list":[],"pageinfo":"暂无数据"'rn```rn![图片说明](https://img-ask.csdn.net/upload/201905/29/1559122181_853820.png)rn请问怎么才能得到图中的信息?
request爬取静态加载的数据
跟获取一般的数据一样,只是网址不同,静态加载的数据,网址在headers里的request URL中,如果request URL的网址中带?号,且问号后的数据为Query String Parameters里的view Source的数据时,则,网址就为request URL的网址,否则网址为request URL的网址加?加request data里的view source的网址(本来想找找例子...
Ajax请求的爬取
下面模拟Ajax请求将前10页微博全部爬取下来: from urllib.parse import urlencode import requests from pyquery import PyQuery as pq base_url = 'https://m.weibo.cn/api/container/getIndex?'#表示请求的url的前半部分 headers = { '...
今日头条爬取ajax请求。
网址: https://www.toutiao.com/ 搜索头条。 可以得到这个网址: https://www.toutiao.com/search/?keyword=%E8%A1%97%E6%8B%8D 开发者工具查看: 我们在搜索中并没有发现上面的文字,那么我们可以初步判定,这个由Ajax加载,然后渲染出来的。此时切换到xhr过滤,可以看到确实是ajax请求。 观察请...
Ajax POST请求GET请求
简介 2005年2月,AJAX 这个词第一次正式提出,它是 Asynchronous JavaScript and XML 的缩写,指的是通过 JavaScript 的异步通信,从服务器获取 XML 文档从中提取数据,再更新当前网页的对应部分,而不用刷新整个网页。后来,AJAX 这个词就成为 JavaScript 脚本发起 HTTP 通信的代名词,也就是说,只要用脚本发起通信,就可以叫做 AJAX...
Python模拟Ajax请求爬取微博
一 分析请求 1 Chrome浏览器打开开发工具,然后访问https://m.weibo.cn/u/2830678474 2 一直滑动页面以加载新的微博内容。可以看到,会不断有Ajax请求发出。 3 选定其中一个请求,分析它的参数信息。点击该请求,进入详情页面,如下图: 4 可以发现,这是一个GET类型的请求,请求链接为[https://m.weibo.cn/api/container...
ajax 发送post请求
example: $.ajax({         url:'/sections/recover/'+id,         method:'POST',         success:function(data){ //可选 请求成功时执行的回调函数 ,注意参数没有$             var s = eval('('+data+')'); //将json字符串转为对象,
Ajax发送post请求
Ajax发送post请求 发送POST请求的注意点: (1)请求方法为post (2)把要提交的参数放在send方法中处理 (3)必须设置请求头信息 xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 封装好的代码示例 // 数据处理方法 function json2str(data)
Ajax提交post请求
前言:博主之前有篇文章是快速入门Ajax,主要是利用Ajax做简单的get请求,今天给大家分享一篇利用Ajax提交post请求,以及使用post时需要注意的地方,还是以案例的方式告诉大家。案例: 注册表单文件结构图: 06-ajax-reg.html文件: 页面中主要有一个表单,使用了onsubmit事件,在onsubmit事件中首先获取准备post的内容,然后创建XMLHttpRequest
Ajax的GET和POST请求
AJAX中GET请求 testget.jsp get.js //当页面内容加载完毕之后,再执行以下代码 window.onload = function(){ document.getElementById("ok").onclick = function(){ //实现Ajax异步交互,与页面的
AJAX之POST提交请求
AJAX即“Asynchronous Javascript And XML”,是指一种创建交互式网页应用的网页开发技术。nAJAX = 异步 JavaScript和XML(标准通用标记语言的子集)。nAJAX 是一种用于创建动态网页的技术。n通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
AJAX HTTP POST请求
<p>rn <span style="font-size:18px;">本课程介绍了jQuery技术的方法面面,其中包括了jQuery选择器、jQuery事件处理、操作HTML和CSS元素、AJAX、动画效果,最后还安排一个实战项目——MyNotes。</span>rn</p>rn<img src="https://img-bss.csdn.net/201903121118258811.jpg" alt="" />
Ajax的Post请求
最近做项目遇到一个需求,需要通过Ajax的post请求下载文件,把实现代码分享给大家。
JS AJAX POST请求
[code=javascript]rnrnvar parameter = rn uid:user_role.data.user.uid,rn checkedStr:checkedStrrn ;rn[/code]rn[code=javascript]rn $.post("roleAction_saveRole.action",parameter,function(data)rn alert("保存成功");rn );rn[/code]rnrn在这个post请求中定义了一个请求参数数组,但是当数组中的checkedStr为""及为空的时候就不能提交到后台,只有checkedStr有值的时候才能提交到后台有大神能告诉我为什么!!!
Ajax之post请求
ajax之get请求需要注意的四个地方:给服务器传递数据需要调用send(请求字符串数据)方法调用方法setRequestHeader()把传递的数据组织为xml格式(模仿form表单传递数据)传递的中文信息无需编码,特殊符号像&amp;amp;、=等仍需要编码该方式请求的同时也可以传递get参数信息,同样使用$_GET接收该信息ajax发起post请求服务器端03.php:&amp;lt;?php //接收p...
Ajax post请求跳转页面
最近因为公司需求,需要ajax post请求并跳转界面,网上搜了一下资料,差不多都是用window.location.href来处理,但是在请求页面的地址栏中会暴露请求的参数,这是不安全的。 $.post( url, {method:"regist",userName:$nameEle.val(),email:$emailEle.val(),password:$passwordEle.val()},
ajax之post请求方式
function f1(){             var username=document.getElementById('username').value;                    //对传递的特殊的特殊符号进行编码处理     这步必须放到请求字符串之前         username=encodeURIComponent(username);
ajax的post请求注意
post请求一定要设置请求内容类型 "contentType" : "application/json; charset=utf-8"
Ajax的post请求
&amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html lang=&quot;en&quot;&amp;gt; &amp;lt;head&amp;gt; &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt; &amp;lt;title&amp;gt;Title&amp;lt;/title&amp;gt; &amp;lt;script src=&quot;vue.js&quot;&amp;gt;&amp;lt;/s
AJAX体验--Post请求
和get不一样的地方: * open:xmlHttp.open("POST" ....); * 添加一步:设置Content-Type请求头:   > xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); * send:xmlHttp.send("username=zhangSan&pa
Ajax之post请求发送
本课程是《 java就业班》系统课程的第17章,全套课程精细讲解,该课程超过其他机构30%的课程量,经过我们全套课程系统学习的同学,可轻松从事Java高级工程师或系统架构师岗位,课程提供全套代码笔记其它相关素材及答疑服务,可谓是低投资高回报!学习前或学习后有任何疑问请在课程中提问,老师看到会第一时间回复!
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview