- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试将下面的 Google 网站优化器 JavaScript 代码包含在 Zope3 页面模板中。它用于 A/B 测试。
但是,模板 html 解析器(我认为是标准的 Python HTMLParser 模块)会抛出以下错误:
raise PTRuntimeError(str(self._v_errors))
- Warning: Compilation failed
- Warning: <class 'HTMLParser.HTMLParseError'>: bad end tag: u"</sc'+'ript>", at line 45, column 44
PTRuntimeError: ['Compilation failed', '<class \'HTMLParser.HTMLParseError\'>: bad end tag: u"</sc\'+\'ript>", at line 45, column 44']
据我所知,我有两个选择:
重写代码,使其通过(我的 JS-foo 很弱,不知道从哪里开始)。
使 HTMLParser 忽略该代码。我尝试过 CDATA 标签但没有成功。我还尝试过将 js 放入外部文件并链接到它,但这似乎会破坏优化器功能。
可疑代码:
<!-- Google Website Optimizer Control Script -->
<script>
<![CDATA[
function utmx_section(){}function utmx(){}
(function(){var k='1010538027',d=document,l=d.location,c=d.cookie;function f(n){
if(c){var i=c.indexOf(n+'=');if(i>-1){var j=c.indexOf(';',i);return c.substring(i+n.
length+1,j<0?c.length:j)}}}var x=f('__utmx'),xx=f('__utmxx'),h=l.hash;
d.write('<sc'+'ript src="'+
'http'+(l.protocol=='https:'?'s://ssl':'://www')+'.google-analytics.com'
+'/siteopt.js?v=1&utmxkey='+k+'&utmx='+(x?x:'')+'&utmxx='+(xx?xx:'')+'&utmxtime='
+new Date().valueOf()+(h?'&utmxhash='+escape(h.substr(1)):'')+
'" type="text/javascript" charset="utf-8"></sc'+'ript>')})();
]]>
</script><script>utmx("url",'A/B');</script>
<!-- End of Google Website Optimizer Control Script -->
最佳答案
考虑到解析器的弱点,您可以尝试分解它试图解释为标签的 CDATA 部分,例如你现在有</sc'+'ript>'
尝试<'+'/sc'+'ript>'
等等( +
在 JS 中进行字符串连接,就像在 Python 中一样,因此它会再次将您以这种方式分解的标签重新组合在一起,就像在原始版本中已经分解的标签一样)。
如果持续出现解析错误,请丢失 CDATA 并每隔 <
进行更改进入<
,每>
进入>
-- 不确定 JS 是否会处理这个问题,但值得一试...祝你好运!
关于javascript - 通过 HTMLParser 验证 Google 优化器 javascript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1506496/
我想将 HTML 实体转换回人类可读的格式,例如'£' 到 '£','°' 到 '°' 等 我已经阅读了几篇关于这个问题的帖子 Converting html source content into
我正在使用 htmlparser (htmlparser.org) 重写输入字符串中的所有链接。 我需要做的就是遍历出现在输入字符串中的所有链接标签 (
我正在使用 iText for .NET 将 HTML 转换为 PDF。 我正在使用 HtmlParser 将 HTML 页面转换为 PDF,但问题是 Htmlparser 似乎只能将第一行转换为 p
我需要在我的 html 页面的数据内容中替换一些字符串。我不能直接使用替换功能,因为我只需要更改数据部分。它不应修改任何标签或属性。我用过 HTMLParser为了这。但我坚持把它写回文件。使用 HT
我正在构建自己的解析器,它不使用搜索引擎 API,仅使用 python 在 bing 环境中返回带有搜索结果的 URL。 我创建了通常的 HTMLParser 类,并在 main 中创建了类实例 pa
假设我有与此类似的 html 代码: Stuff I do want Stuff I don't want 使用 HTMLParser 的 handle_data 不能区分链接文本(我想要的东西)(这
我正在开发一个网络机器人,它会轮询我的大学的类(class)列表,到目前为止,我已经完成了很多工作。但我在使用 HTML 解析器时遇到了问题。事情是这样的,当我单独获取每个专业的类(class)列表时
因此,在我感兴趣的 URL 的 HTML 文档中,我想要在每个页面上显示的信息并不是由紧邻其周围的标签唯一定义的,而是由之前的标签唯一定义的,即它看起来像 data I want to get
我正在使用 html.parser 模块中的 Python 的 HTMLParser。我正在寻找一个标签,当找到它时停止解析是有意义的。这可能吗?我尝试调用 close(),但我不确定这是否可行。 c
我想用吊索重写管道重写跨度标签属性中的链接。 htmlparser 生成器只调用“a、link、script、img、form、body”元素。如何向变压器添加跨度等附加元素?一个示例配置会很棒! 我
我正在使用这个 HtmlFromXamlConverter来自微软并试图在 RichTextBox 上显示 html 脚本。HtmlToXamlConverter 工作正常,但 HtmlFromXam
我正在使用 HTMLParser (org.htmlparser) 来解析 HTML。我用它来访问标签并获取标签属性,如下所示: NodeVisitor linkvisitor = new NodeV
我正在使用 Jsoup 来解析这个网页 https://daisy.dsv.su.se/servlet/schema.MomentInfoRuta?id=261020&kind=100&nochang
我了解如何使用 HTMLParser 中的handle_starttag,但我很困惑它在幕后是如何工作的。 https://docs.python.org/3/library/html.parser.
我似乎无法在 HTMLParser 中添加任何新变量的访问权限。我正在遵循我见过的示例here 。我在 __init__ 中添加变量时没有遇到任何错误,但是当我尝试在方法中访问它时,我被告知它不存在。
我正在使用 htmlparser 来解析网站,但我遇到了一个非常奇怪的问题。我正在尝试获取所有 网页上的节点,我的代码如下: String url = "http://s.1688.com/sello
更新:您好 Pascal,感谢您的快速回复,这几乎就是我想要的。每个标签的新链接都不同,你能帮我做一下吗? 我需要做的就是遍历输入字符串中出现的所有链接标签,获取它们的值,然后在不影响链接文本的情况下
SamJohn 我正在使用 python HTMLParser module从下面的 html 片段中提取值 Sam 和 John,但是 handle_data 函数只捕获 Sam 而不是 J
考虑以下 html 输入: function open_tools(tool_div) { document.getElementById("tool1").innerHTML = "";
我在 Node.js 中使用 http 模块有这个简单的 HTMLParser: var http = require('http'); var options = { hostname: 'ww
我是一名优秀的程序员,十分优秀!