目标爬取网站为http://www.ccgp-shaanxi.gov.cn/notice/list.do?noticetype=3&province=province
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貌似没有起作用,因本人属于新手小白,各位大神能指点指点吗?
formdata 里面的数据是body里的,带上就好了,我做爬虫好几年了,有什么不懂的,欢迎追问!如果对你有帮助,请采纳!
你cookie也要设置上去。不然可能提交的数据不会接受
有木有大神帮着执行一下、、、分析一下
我觉得是你的data数据格式有问题,方括号内应该是个字符串
data = {
'parameters[\'purcatalogguid\']': '',
'page.pageNum': '',
'parameters[\'title\']': '税',
'parameters[\'startdate\']': '',
'parameters[\'enddate\']': '',
'parameters[\'regionguid\']': '6101',
'parameters[\'projectcode\']': '',
'province': '',
'parameters[\'purmethod\']': ''
}
遇到这种问题你应该先尝试发送原始请求中body 的raw data的也就是原始数据, 尝试直接修改字符串,而不是用抓包工具提供的解析后的body重新编码, 成功概率会高一点。 这样就可以排除cookie或是其他的认证性错误
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']": ''
}
print(data)
request = requests.post(url, data=data, headers=headers)
print(request.text)
print(request.headers)