标签: html-parsing

解析器(例如,HTML)如何工作?

为了论证,我们假设一个HTML解析器.

我已经读过它首先将所有内容标记化,然后解析它.

tokenize意味着什么?

解析器是否每个都读取每个字符,构建一个多维数组来存储结构?

例如,它是读取a <然后开始捕获元素,然后一旦它遇到关闭>(在属性之外)它被推送到某个地方的数组堆栈?

我为了知道而感兴趣(我很好奇).

如果我要阅读像HTML Purifier这样的内容,那么这会让我对HTML的解析方式有所了解吗?

html browser parsing tokenize html-parsing

37
推荐指数
4
解决办法
1万
查看次数

如何使用python HTMLParser库从特定div标签中提取数据?

我试图使用python HTMLParser库从HTML页面中获取值.我想要掌握的值是在这个html元素中:

...
<div id="remository">20</div>
...
Run Code Online (Sandbox Code Playgroud)

到目前为止,这是我的HTMLParser类:

class LinksParser(HTMLParser.HTMLParser):
  def __init__(self):
    HTMLParser.HTMLParser.__init__(self)
    self.seen = {}

  def handle_starttag(self, tag, attributes):
    if tag != 'div': return
    for name, value in attributes:
    if name == 'id' and value == 'remository':
      #print value
      return

  def handle_data(self, data):
    print data


p = LinksParser()
f = urllib.urlopen("http://domain.com/somepage.html")
html = f.read()
p.feed(html)
p.close()
Run Code Online (Sandbox Code Playgroud)

有人能指出我正确的方向吗?我希望类功能获得值20.

html python parsing html-parsing

37
推荐指数
3
解决办法
12万
查看次数

带有标签的HTML文本,用于Excel单元格中的格式化文本

有没有办法获取HTML并将其导入Excel,以便将其格式化为富文本格式(最好使用VBA)?基本上,当我粘贴到Excel单元格时,我希望将其转为:

<html><p>This is a test. Will this text be <b>bold</b> or <i>italic</i></p></html>
Run Code Online (Sandbox Code Playgroud)

进入这个:

这是一个测试.这个文本是粗体还是斜体

excel vba excel-vba html-parsing

37
推荐指数
6
解决办法
17万
查看次数

IE中HTML解析器的问题

我正在尝试创建一个对话框,只有在选择的浏览器是IE(任何版本)时才会出现但是我收到此错误:

消息:HTML分析错误:在子元素关闭之前无法修改父容器元素(KB927917)

这一切都在"Line/Char/Code"0中,所以我不知道错误在哪里.我正在使用的代码是这样的:

 <script type="text/javascript"> 
  <!--  
  if(BrowserDetect.browser.contains("Explorer"))
  {     
    var Nachricht = 'Hemos detectado que está utilizando ' + BrowserDetect.browser + ' ' +
  BrowserDetect.version + '. Puede que algunas funciones no estén habilitadas. <p></p> Si desea experimentar todo el potencial del portal, por favor intente desde otro navegador (browser). <p></p>Gracias
 showDialog('¡Aviso Importante!',Nachricht,'warning',10);
 } 
 </script>
Run Code Online (Sandbox Code Playgroud)

我注意到,如果我删除"BrowserDetect.browser"和.version它会删除错误,但我需要检查=/...任何想法将被赞赏=).

javascript html-parsing

35
推荐指数
3
解决办法
7万
查看次数

使用jQuery解析远程内容的最佳实践是什么?

在jQuery ajax调用以检索整个XHTML文档之后,从结果字符串中选择特定元素的最佳方法是什么?也许有一个库或插件可以解决这个问题?

如果W3C规范中的div通常允许,jQuery只能选择存在于字符串中的XHTML元素; 因此,我很好奇选择喜欢的东西<title>,<script><style>.

根据jQuery文档:

http://docs.jquery.com/Core/jQuery#htmlownerDocument

HTML字符串不能包含div中无效的元素,例如html,head,body或title元素.

因此,既然我们已经确定jQuery没有提供这样做的方法,我将如何选择这些元素?例如,如果您可以告诉我如何选择远程页面的标题,那将是完美的!

谢谢,皮特

jquery html-parsing

35
推荐指数
2
解决办法
2万
查看次数

将HTML文件读入内存中的字符串变量

如果我在磁盘上有一个HTML文件,我怎样才能在运行时一次性读取一个String变量?然后我需要对该字符串变量进行一些处理.

一些像这样的html文件:

<html>
    <table cellspacing="0" cellpadding="0" rules="all" border="1" style="border-width:1px;border-style:solid;width:274px;border-collapse:collapse;">
        <COLGROUP><col width=35px><col width=60px><col width=60px><col width=60px><col width=59px></COLGROUP>
        <tr style="height:20px;">
            <th style="background-color:#A9C4E9;"></th><th align="center" valign="middle" style="color:buttontext;background-color:#D3DCE9;">A</th><th align="center" valign="middle" style="color:buttontext;background-color:#D3DCE9;">B</th><th align="center" valign="middle" style="color:buttontext;background-color:#D3DCE9;">C</th><th align="center" valign="middle" style="color:buttontext;background-color:#D3DCE9;">D</th>
        </tr><tr style="height:20px;">
            <th align="center" valign="middle" style="color:buttontext;background-color:#E4ECF7;">1</th><td align="left" valign="top" style="color:windowtext;background-color:window;">Hi</td><td align="left" valign="top" style="color:windowtext;background-color:window;">Cell Two</td><td align="left" valign="top" style="color:windowtext;background-color:window;">Actually a longer text</td><td align="left" valign="top" style="color:windowtext;background-color:window;">Final Word</td>
        </tr>
    </table>
</html>
Run Code Online (Sandbox Code Playgroud)

html c# file-io html-parsing

34
推荐指数
6
解决办法
10万
查看次数

通过删除额外/冗余格式标记来清理HTML

我一直在使用CKEditor wysiwyg编辑器建立一个网站,允许用户使用HTML编辑器添加一些注释.我最终在我的数据库中有一些非常冗余的嵌套HTML代码,这会减慢查看/编辑这些注释的速度.

我的评论看起来像这样(这是一个非常小的例子.我有超过100个嵌套标签的评论):

<p>
 <strong>
  <span style="font-size: 14px">
   <span style="color: #006400">
     <span style="font-size: 14px">
      <span style="font-size: 16px">
       <span style="color: #006400">
        <span style="font-size: 14px">
         <span style="font-size: 16px">
          <span style="color: #006400">This is a </span>
         </span>
        </span>
       </span>
      </span>
     </span>
    </span>
    <span style="color: #006400">
     <span style="font-size: 16px">
      <span style="color: #b22222">Test</span>
     </span>
    </span>
   </span>
  </span>
 </strong>
</p>
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • 是否有任何库/代码/软件可以对HTML代码进行智能(即格式识别)清理,删除所有对格式没有影响的冗余标记(因为它们被内部标记覆盖)?我尝试了很多现有的在线解决方案(例如HTML Tidy).他们都没有做我想做的事.

  • 如果没有,我需要编写一些HTML解析和清理代码.我打算使用PHP Simple HTML DOM遍历HTML树并找到所有无效的标签.您是否建议任何其他更适合我的HTML解析器?

谢谢

.

更新:

我编写了一些代码来分析我的HTML代码.我拥有的所有HTML标签都是:

  • <span>用于font-size和/或的样式color
  • <font>与属性color和/或size
  • <a> …

html php dom bbcode html-parsing

33
推荐指数
3
解决办法
2万
查看次数

Android HTML ImageGetter as AsyncTask

好吧,我对这个失去了理智.我的程序中有一个解析HTML的方法.我想要包含内嵌图像,我的印象是使用Html.fromHtml(字符串,Html.ImageGetter,Html.TagHandler)将允许这种情况发生.

由于Html.ImageGetter没有实现,所以由我来编写一个.但是,由于将URL解析为Drawables需要网络访问,我不能在主线程上执行此操作,因此它必须是AsyncTask.我认为.

但是,当您将ImageGetter作为参数传递给Html.fromHtml时,它使用必须重写的getDrawable方法.因此无法调用触发doInBackground方法的整个ImageGetter.execute事务,因此无法实际实现此异步.

我是否完全错了,或者更糟糕的是,这是不可能的?谢谢

android html-parsing drawable android-asynctask

32
推荐指数
2
解决办法
2万
查看次数

如何使用XPath获取节点值/ innerHTML?

我有一个XPath来选择我想要的类://div[@class='myclass'].但它返回给我整个div(<div class='myclass'>也有,但我想只返回这个标签的内容而没有标签本身.我怎么能这样做?

xml xpath parsing html-parsing

32
推荐指数
3
解决办法
7万
查看次数

PHP的类似jQuery的界面?

我很好奇是否存在用于处理HTML/XML文件的PHP的jQuery样式接口/库 - 特别是使用jQuery样式选择器.

我想做这样的事情(所有假设):

foreach (j("div > p > a") as anchor) {
   // ...
}


print j("#some_id")->html();


print j("a")->eq(0)->attr("name");

这只是几个例子.

我尽可能多地使用谷歌搜索,但找不到我想要的东西.有没有人知道这些东西是否存在,或者这是我将要使用domxml从头开始制作的东西?

html php xml jquery html-parsing

31
推荐指数
4
解决办法
2万
查看次数