【发布时间】:2011-07-28 10:13:37
【问题描述】:
我一直在玩代码 (HTML2Canvas):https://github.com/niklasvh/html2canvas
这是一个将 HTML 页面转换为画布元素的客户端 Javascript 工具。
它使用代理从远程站点获取 HTML,它会像这样进行 Ajax 调用:
$.ajax({
data: {
xhr2:false,
url:urlParts.href
},
url: "http://html2canvas.appspot.com",
dataType: "jsonp",
success: function(html) {
这导致以下结果,当请求 yahoo.com 作为示例 URL 时,会请求 url:
http://html2canvas.appspot.com/?callback=jQuery162020564090818326575_1311846010895&xhr2=false&url=http%3A%2F%2Fwww.yahoo.com%2F&_=1311846201150
我想要做的是推出我自己的 JSONP 代理,我可以将我的代码副本指向它。问题是我不知道从哪里开始。
返回的 JSONP(我不会全部复制)是这样开始的:
jQuery162020564090818326575_1311846010895("<!DOCTYPE html>\n<html lang=\"en-US\" class=\"y-fp-bg y-fp-pg-grad bkt701\" style=\
因此 HTML 被转义并包装在回调中。
我想创建一个 Python 脚本,它按照完全相同的方式工作并生成完全相同的输出。
谁能指出我正确的方向来创建一个可以生成类似输出的 Python JSONP 代理?它不一定是 Python,我只是引用它,因为它是当前使用的。
【问题讨论】:
-
你不能去掉回调——比如
jsonp.partition("(")[2].rstrip(")")——然后用剩下的字符串做你喜欢的事情吗?
标签: javascript python json proxy jsonp