鱼C论坛

 找回密码
 立即注册
查看: 8802|回复: 12

Python如何 POST “request payload”到目标URL?

[复制链接]
发表于 2016-7-21 16:18:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
想利用bing翻译写一个翻译脚本,但是没办法post “request payload”到目标url。

小甲鱼的课程中只教了然后post formdata到目标url
求大神帮解决!!
QQ截图20160721161758.jpg
QQ截图20160721161411.jpg
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-7-21 16:23:22 | 显示全部楼层
import urllib.parse
import http.client as httplib


def get(url):
    httpClient = None
    params = urllib.parse.urlencode({"id":'-1767504348',"text":"查看家居产品,设备不断更新,便宜"})
    print(params)
    headers = {
                'Accept':'application/json, text/javascript, */*; q=0.01',
                'Accept-Encoding':'gzip, deflate',
                'Accept-Language':'zh-CN,zh;q=0.8',
                'Connection':'keep-alive',
                'Content-Type':'application/json; charset=UTF-8',
                'Cookie':'destDia=zh-CN; srcLang=zh-CHS; smru_list=zh-CHS; destLang=vi; dmru_list=da%2Czh-CHS%2Cvi; sourceDia=zh-CN; SRCHD=AF=WNSGPH; SRCHUSR=AUTOREDIR=0&GEOVAR=&DOB=20151223; MUIDB=04492A26332B65140ACA22A0372B6389; SRCHHPGUSR=CW=1903&CH=978&DPR=1; MUID=04492A26332B65140ACA22A0372B6389; SRCHUID=V=2&GUID=241945A2F1E146E1B95EA3D067A9A132; mtstkn=dno%2BRP9HUybhH26u2dFMzsxxqcmJsAj8%2Fm8DT2Z%2BdQQduROFh50TlTJ5tQJ2d7KS; _EDGE_S=SID=336F79E6160A6E1E088C70BF17AB6FCE; _SS=SID=336F79E6160A6E1E088C70BF17AB6FCE; WLS=TS=63604682338; SNRHOP=I=&TS=; destDia=zh-CN; destLang=vi; dmru_list=da%2Czh-CHS%2Cvi; srcLang=zh-CHS; smru_list=vi%2Czh-CHS; sourceDia=zh-CN',
                'Host':'www.bing.com',
                'Origin':'http://www.bing.com',
                'Referer':'http://www.bing.com/translator',
                'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36',
                'X-Requested-With':'XMLHttpRequest',
               }


    httpClient = httplib.HTTPConnection(url)
    httpClient.request("POST","/translator/api/Translate/TranslateArray?from=zh-CHS&to=vi", params, headers)

    response = httpClient.getresponse()
    print (response.status)
    print (response.reason)
    print (response.read())
    print (response.getheaders()) #获取头信息


url = "www.bing.com"
get(url)



输出结果:
text=%E6%9F%A5%E7%9C%8B%E5%AE%B6%E5%B1%85%E4%BA%A7%E5%93%81%EF%BC%8C%E8%AE%BE%E5%A4%87%E4%B8%8D%E6%96%AD%E6%9B%B4%E6%96%B0%EF%BC%8C%E4%BE%BF%E5%AE%9C&id=-1767504348
400
Bad Request
b'{\r\n  "Message": "Invalid request",\r\n  "Details": [\r\n    "You must specify a JSON array of Translate requests in the POST body"\r\n  ]\r\n}'
[('Cache-Control', 'no-cache'), ('Pragma', 'no-cache'), ('Content-Length', '134'), ('Content-Type', 'application/json; charset=utf-8'), ('Expires', '-1'), ('Server', 'Microsoft-IIS/8.5'), ('X-AspNet-Version', '4.0.30319'), ('X-Powered-By', 'ASP.NET'), ('Access-Control-Allow-Origin', '*'), ('X-MSEdge-Ref', 'Ref A: 0E3A2425C6114DD8AB77C45C829902B8 Ref B: EB5443741EE6590EE5AD2A959DE71CCF Ref C: Thu Jul 21 01:22:33 2016 PST'), ('Date', 'Thu, 21 Jul 2016 08:22:32 GMT')]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-21 16:39:14 | 显示全部楼层
因为是要将越南语转换为中文,好像只有谷歌和bing可以,也是忧伤
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-21 18:31:08 | 显示全部楼层
还没学到。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-21 19:48:17 | 显示全部楼层

快 学,学完来讨论讨论
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-22 08:48:58 | 显示全部楼层
finding 发表于 2016-7-21 19:48
快 学,学完来讨论讨论

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-22 13:58:57 | 显示全部楼层
大神们都在哪呢,快来答疑解惑吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-22 14:59:50 | 显示全部楼层
finding 发表于 2016-7-22 13:58
大神们都在哪呢,快来答疑解惑吧

"You must specify a JSON array of Translate requests in the POST body"
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-22 16:00:54 | 显示全部楼层
SixPy 发表于 2016-7-22 14:59
"You must specify a JSON array of Translate requests in the POST body"

这。。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-22 16:06:45 | 显示全部楼层
本帖最后由 SixPy 于 2016-7-22 16:08 编辑

  1. import requests as req
  2. import json
  3. headers = {
  4.     'Accept':'application/json, text/javascript, */*; q=0.01',
  5.     'Accept-Encoding':'gzip, deflate',
  6.     'Accept-Language':'zh-CN,zh;q=0.8',
  7.     'Connection':'keep-alive',
  8.     'Content-Type':'application/json; charset=UTF-8',
  9.     'Host':'www.bing.com',
  10.     'Origin':'http://www.bing.com',
  11.     'Referer':'http://www.bing.com/translator',
  12.     'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36',
  13.     'Cookie':'自己找最新的',
  14.     'X-Requested-With':'XMLHttpRequest'
  15. }
  16. bUrl='http://www.bing.com/translator/api/Translate/TranslateArray?from=zh-CHS&to=vi'

  17. Jsondata='[{"id":"自己找最新的","text":"查看家居产品,设备不断更新,便宜"}]'
  18. j=json.loads(Jsondata)
  19. rsp=req.post(bUrl,
  20.              json=j,
  21.              headers = headers)
  22. print(rsp)
复制代码


'Cookie':'自己找最新的',
Jsondata='[{"id":"自己找最新的","text":"查看家居产品,设备不断更新,便宜"}]'
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-7-22 16:10:03 | 显示全部楼层
本帖最后由 SixPy 于 2016-7-22 16:11 编辑
  1. >>> print(rsp.text)
  2. {
  3.   "from": "zh-CHS",
  4.   "to": "vi",
  5.   "items": [
  6.     {
  7.       "id": "自己找最新的",
  8.       "text": "Xem sản phẩm, thiết bị liên tục Cập Nhật, giá rẻ",
  9.       "wordAlignment": ""
  10.     }
  11.   ]
  12. }
复制代码


查询结果~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-22 16:53:34 | 显示全部楼层

感动,马上去试试看。谢谢!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-7-22 17:02:12 | 显示全部楼层

太厉害了,真的可以诶。我研究几天了都搞不定,非常感谢!!!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-21 20:39

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表