使用POST将文件从Python脚本发送到PHP脚本
在上述代码的帮助下,我能够登录到管理面板。在这里,我应该发布一些广告(在这里,我将自动执行任务和字段,包括广告标题、广告描述,以及主要重要的一系列图像(我想图像列表是一个更好的术语;) HTML代码段:使用POST将文件从Python脚本发送到PHP脚本,php,python,image,post,Php,Python,Image,Post,在上述代码的帮助下,我能够登录到管理面板。在这里,我应该发布一些广告(在这里,我将自动执行任务和字段,包括广告标题、广告描述,以及主要重要的一系列图像(我想图像列表是一个更好的术语;) HTML代码段: import urllib,MultipartPostHandler,urllib2,cookielib cookies = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(c
import urllib,MultipartPostHandler,urllib2,cookielib
cookies = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies),MultipartPostHandler.MultipartPostHandler)
urllib2.install_opener(opener)
login = urllib.urlencode(dict(admin_user='admin',admin_pass='****'))
o=opener.open('http://some_domain_name/admin/index.php',login)
print o.read()
### successfully logged-into the system ###################
我绝对推荐这家图书馆。它制作多部分的帖子。它也更加简单
在请求中,登录代码如下所示:
Content-Disposition: form-data; name="adtitle"
sample title
-----------------------------20165274802361271281051822614
Content-Disposition: form-data; name="area"
sample location
-----------------------------20165274802361271281051822614
Content-Disposition: form-data; name="addesc"
<p>sample post</p>
-----------------------------20165274802361271281051822614
Content-Disposition: form-data; name="price"
200
-----------------------------20165274802361271281051822614
Content-Disposition: form-data; name="x[1]"
2012
-----------------------------20165274802361271281051822614
Content-Disposition: form-data; name="email"
abc@def.com
-----------------------------20165274802361271281051822614
Content-Disposition: form-data; name="showemail"
2
-----------------------------20165274802361271281051822614
Content-Disposition: form-data; name="pic[]"; filename="3_d_flower.jpg"
Content-Type: image/jpeg
ÿØÿà
导入urllib、MultipartPostHandler、urllib2、cookielib
cookies=cookielib.CookieJar()
opener=urllib2.build\u opener(urllib2.HTTPCookieProcessor(cookies),MultipartPostHandler.MultipartPostHandler)
urllib2.install_opener(opener)
login=urllib.urlencode(dict(admin\u user='admin',admin\u pass='**'))
o=开启器。开启('http://some_domain_name.com/admin/index.php,登入)
打印o.读取()
###已登录到系统###################
###现在把东西贴出来####################
原始参数={“adtitle”:“示例标题”,
“区域”:“样本区域”,
“附录C”:“样本帖子””,
“价格”:“2000”,
“x[1]:“2012”,
“电子邮件”:abc@def.com",
“showemail”:“2”,
“pic[0]:open(“indian_eye.jpg”、“rb”),
“pic[1]:open(“nature.jpg”、“rb”),
“subcatid”:“1”,
“do”:“post”,
}
url=”http://some_domain_name.com/admin/postad.php?cityid=15&subcatid=1"
opener.open(url、原始参数)
------------------------------------------------
我想知道如何在post请求中添加图像。我尝试了这个,但它给了我相同的登录页面。这对我来说不起作用(.是否有可能在不使用任何外部库的情况下添加文件。这当然是可能的,但是安装请求并使用它要比尝试找出所有标准库魔法容易得多。此外,我误读了原始代码,现在我编写的代码演示了如何随请求发送表单数据不用设置身份验证标题。不必大惊小怪,只是一个简单的答案。我想知道我怎么会错过这个。
raw_params={"adtitle":"sample title",
"area":"sample area",
"addesc":"<p>sample post</p>",
"price":"2000",
"x[1]":"2012",
"email":"abc@def.com",
"showemail":"2",
"subcatid":"15",
"do":"post",
}
encoded_params=urllib.urlencode(raw_params)
target_page = 'http://some_domain_name/admin/postad.php?cityid=15&subcatid=15'
opener.open(target_page,encoded_params)
Content-Disposition: form-data; name="adtitle"
sample title
-----------------------------20165274802361271281051822614
Content-Disposition: form-data; name="area"
sample location
-----------------------------20165274802361271281051822614
Content-Disposition: form-data; name="addesc"
<p>sample post</p>
-----------------------------20165274802361271281051822614
Content-Disposition: form-data; name="price"
200
-----------------------------20165274802361271281051822614
Content-Disposition: form-data; name="x[1]"
2012
-----------------------------20165274802361271281051822614
Content-Disposition: form-data; name="email"
abc@def.com
-----------------------------20165274802361271281051822614
Content-Disposition: form-data; name="showemail"
2
-----------------------------20165274802361271281051822614
Content-Disposition: form-data; name="pic[]"; filename="3_d_flower.jpg"
Content-Type: image/jpeg
ÿØÿà
import requests
o = requests.get('http://some_domain_name/admin/index.php',
data={admin_user: 'admin',
admin_pass: '****'})
print o.text
print o.cookies
import urllib,MultipartPostHandler,urllib2,cookielib
cookies = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookies),MultipartPostHandler.MultipartPostHandler)
urllib2.install_opener(opener)
login = urllib.urlencode(dict(admin_user='admin',admin_pass='****'))
o=opener.open('http://some_domain_name.com/admin/index.php',login)
print o.read()
### logged-into the system ###################
### Now post the things ####################
raw_params={"adtitle":"sample title",
"area":"sample area",
"addesc":"<p>sample post</p>",
"price":"2000",
"x[1]":"2012",
"email":"abc@def.com",
"showemail":"2",
"pic[0]":open("indian_eye.jpg", "rb"),
"pic[1]":open("nature.jpg", "rb"),
"subcatid":"1",
"do":"post",
}
url="http://some_domain_name.com/admin/postad.php?cityid=15&subcatid=1"
opener.open(url, raw_params)
------------------------------------------------