我的问题是:如何从这个网站获取数据http://vtis.vn/index.aspx但是直到你点击"Danhsáchchậm"之后才会显示数据.我非常努力和仔细地尝试,当你点击"Danhsáchchậm"这是触发一些javascript函数的onclick事件时,其中一个js函数是从服务器获取数据并将其插入到标记/占位符中这一点你可以使用像firefox这样的东西来检查数据,是的,数据会显示给网页上的用户/查看者.那么,我们又如何以编程方式废弃这些数据呢?
我写了一个报废功能,但当然它没有得到我想要的数据,因为直到我点击按钮"Danhsáchchậm"之前数据不可用
<?php
$Page = file_get_contents('http://vtis.vn/index.aspx');
$dom_document = new DOMDocument();
$dom_document->loadHTML($Page);
$dom_xpath_admin = new DOMXpath($dom_document_admin);
$elements = $dom_xpath->query("*//td[@class='IconMenuColumn']");
//
foreach ($elements as $element) {
$nodes = $element->childNodes;
foreach ($nodes as $node) {
echo (mb_convert_encoding($node->c14n(), 'iso-8859-1', mb_detect_encoding($content, 'UTF-8', true)));
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢你,StackOverflow是一个很棒的地方.D.
我正在使用Node.js,我需要解析一个html文件。现在,我使用了htmlparser2,它在parser.write(“ String”)方法中解析字符串。我可以使用html解析器解析html文件吗?如果是,那怎么办?
感谢帮助?
我有一些用Python(2.7)编写的代码,它使用HTMLParser.我目前正在使用Pyhton 3.4.
我找不到HTMLParse下载模块.我搜索了很多.我找不到它了.
我担心它是否存在.如果存在,请分享链接.如果没有,我该怎么办?
我开始使用 Python 中的 HTMLParser 从网站中提取数据。我得到了我想要的一切,除了 HTML 的两个标签内的文本。以下是 HTML 标记的示例:
<a href="http://wold.livingsources.org/vocabulary/1" title="Swahili" class="Vocabulary">Swahili</a>
Run Code Online (Sandbox Code Playgroud)
还有其他以 . 开头的标签。它们具有其他属性和值,因此我不想拥有它们的数据:
<a href="http://wold.livingsources.org/contributor#schadebergthilo" title="Thilo Schadeberg" class="Contributor">Thilo Schadeberg</a>
Run Code Online (Sandbox Code Playgroud)
标签是表格中的嵌入标签。我不知道这是否对其他标签有任何影响。我只想要一些名为“a”的标签中的信息,属性 class="Vocabulary",我想要标签内的数据,在示例中它是“斯瓦希里语”。所以我所做的是:
class AllLanguages(HTMLParser):
'''
classdocs
'''
#counter for the languages
#countLanguages = 0
def __init__(self):
HTMLParser.__init__(self)
self.inLink = False
self.dataArray = []
self.countLanguages = 0
self.lasttag = None
self.lastname = None
self.lastvalue = None
#self.text = ""
def handle_starttag(self, tag, attr):
#print "Encountered a start tag:", tag
if tag == 'a':
for name, value in attr:
if …Run Code Online (Sandbox Code Playgroud) 我写了一个简单的perl脚本但是我收到了这个运行时错误:
无法在Parser.pl第6行的未定义值上调用方法"get_tag"
以下是我的代码:
#!usr/bin/perl
use HTML::TokeParser
my $p=HTML::TokeParser->new('bad.html');
while (my $token=$p->get_tag('a')){
my $url=$token->[1]{href};
print "$url\n";
}
Run Code Online (Sandbox Code Playgroud)
我在这个perl程序的同一目录下放置了一个文件bad.html.以下是bad.html的代码
<html><body>
<a href="https://www.Google.com">Google</a>
<a href="https://www.yahoo.com">Yahoo</a>
</body></html>
Run Code Online (Sandbox Code Playgroud)
请帮我解决运行perl代码时出错的问题.
我$content使用DOMDocument 解析变量中的html,以将所有iframe替换为图片。foreach仅替换ODD iframe。我已经删除了foreach中的所有代码,并发现引起该问题的代码是:'$ iframe-> parentNode-> replaceChild($ link,$ iframe);'
为什么foreach会跳过所有奇数iframe?
代码:
$count = 1;
$dom = new DOMDocument;
$dom->loadHTML($content);
$iframes = $dom->getElementsByTagName('iframe');
foreach ($iframes as $iframe) {
$src = $iframe->getAttribute('src');
$width = $iframe->getAttribute('width');
$height = $iframe->getAttribute('height');
$link = $dom->createElement('img');
$link->setAttribute('class', 'iframe-'.self::return_video_type($iframe->getAttribute('src')).' iframe-'.$count.' iframe-ondemand-placeholderImg');
$link->setAttribute('src', $placeholder_image);
$link->setAttribute('height', $height);
$link->setAttribute('width', $width);
$link->setAttribute('data-iframe-src', $src);
$iframe->parentNode->replaceChild($link, $iframe);
echo "here:".$count;
$count++;
}
$content = $dom->saveHTML();
return $content;
Run Code Online (Sandbox Code Playgroud)
这是代码的问题所在
$iframe->parentNode->replaceChild($link, $iframe);
Run Code Online (Sandbox Code Playgroud) 我必须使用beautifulsoup,但是我不知道我必须使用哪个解析器。我对lxml和html.parser犹豫不决,或者为什么不两者都选择。如何知道网页是否符合lxml?如何知道网页是否符合html解析器?非常感谢
我正在尝试安装 HTML-Parser-3.64,并且在运行时收到以下报告make test:
ERL_DL_NONLAZY=1 /home/Perl/bin/perl -Iblib/arch -Iblib/lib -I/home/Perl/5.6.1-nothread/lib/perl5/5.6.1/sun4.SVR4 -I/home/Perl/ 5.6.1-nothread/lib/perl5/5.6.1 -e \'use Test::Harness qw(&runtests $verbose); $详细=0;runtests @ARGV;\' t/*.t\nt/api_version........ok \nt/argspec-bad........ok \nt/argspec....... .....ok \nt/argspec2...........ok \nt/attr-encoded.......ok \nt/callback........................ .ok \nt/区分大小写......ok \nt/cases............ok \nt/comment............ok \nt/crashme…………ok \nt/声明……ok \nt/default…………ok \nt/文档............ok \nt/dtext............ok \nt/entities............ok 1/ 17 \nt/entities...........NOK 17# 测试失败(t/entities.t 第 74 行)\n# 得到:\'Attention Homeοωnשrs...1ѕt Tімe Eνשг\'\n #预期:\'注意首页\xc3\x8e\xc2\xbf\xc3\x8fn\xc3\x93\xc2\xa9rs...1\xc3\x91t T\xc3\x91\xc3\x90\xc2\xbce E\ xc3\x8e\xc2\xbd\xc3\x93\xc2\xa9\xc3\x90\xc2\xb3\'\n# 看起来您未通过 17 项测试中的 1 项。\nt/entities......... ..可疑\n测试返回状态1(wstat 256,0x100)\n死亡。失败测试 17\n 失败 1/17 测试,94.12% 好\nt/entities2.........ok \nt/filter-methods.....ok \nt/filter..... ........ok \nt/handler-eof........ok \nt/handler............ok \nt/headparser-http... .ok \nt/headparser.........ok \n 4/15 已跳过:需要 Unicode 支持\nt/ignore.....ok \nt/largetags.. ........ok …
好的,这就是我正在做的事情.我正在为我的自定义扩展(.cpm)结尾的文档制作一个perl解释器.我环顾四周,发现了
似乎HTML :: Parser是要走的路.我要求的是一个简单的教程来解析带有特殊标签的文档.例如,我想要一些东西向我展示如何解析HTML文档,但无论什么时候,<putinbold>它都会被替换掉<b>.
我想要的一个例子 -
<html>
This is HTML talking
<liamslanguage>say "This is Liams language speaking"</liamslanguage>
</html>
html-parser ×9
perl ×3
python ×3
html-parsing ×2
php ×2
foreach ×1
html ×1
iframe ×1
javascript ×1
lxml ×1
node.js ×1
python-2.7 ×1