相关疑难解决方法(0)

你能提供解析HTML的例子吗?

如何使用各种语言解析HTML并解析库?


回答时:

个人评论将链接到有关如何使用正则表达式解析HTML的问题的答案,作为展示正确行事方式的一种方式.

为了保持一致性,我要求该示例解析hrefin锚标记的HTML文件.为了便于搜索此问题,我要求您遵循此格式

语言:[语言名称]

图书馆:[图书馆名称]

[example code]
Run Code Online (Sandbox Code Playgroud)

请使库成为库文档的链接.如果您想提供除提取链接之外的示例,还请包括:

目的:[解析的作用]

html language-agnostic html-parsing

69
推荐指数
15
解决办法
3万
查看次数

像Perl或Python中的lex一样模拟功能

这是交易.有没有办法让基于多个正则表达式的行中的字符串标记?

一个例子:

我必须根据不同的正则表达式获取所有href标签,相应的文本和其他一些文本.所以我有3个表达式,并且想要对行进行标记并提取与每个表达式匹配的文本标记.

我实际上是使用flex完成的(不要与Adobe混淆),这是一个很好的老lex的实现.lex通过基于表达式执行"actions"来提供一种优雅的方法.人们也可以控制lex读取文件的方式(基于块/行的读取).

问题是flex实际上产生的C/C++代码实际上是标记化工作.我有一个包含所有这些东西的make文件.我想知道perl/python是否能以某种方式做同样的事情.它只是我想用一种编程语言本身做我喜欢的一切.

令牌化只是我想要在我的应用程序中执行的操作之一.

除了perl或python之外,任何语言(功能也可以)都可以这样做吗?

我在这里读过关于PLY和ANTLR的内容(解析,我在哪里可以了解它).

但有没有办法在python本身自然地做到这一点?请原谅我的无知,但这些工具是否适用于任何受欢迎的产品/服务?

谢谢.

python perl parsing lex

4
推荐指数
3
解决办法
1357
查看次数

如何在Perl中构建和解析HTTP URL的/ URI /路径?

我有一个类似wget的脚本,它下载一个页面,然后检索该页面上IMG标签中链接的所有文件.

给定原始页面的URL和从该页面中的IMG标记中提取的链接,我需要构建我想要检索的图像文件的URL.目前我使用的是我写的函数:

sub build_url {
    my ( $base, $path ) = @_;

    # if the path is absolute just prepend the domain to it
    if ($path =~ /^\//) {
        ($base) = $base =~ /^(?:http:\/\/)?(\w+(?:\.\w+)+)/;
        return "$base$path";
    }

    my @base = split '/', $base;
    my @path = split '/', $path;

    # remove a trailing filename
    pop @base if $base =~ /[[:alnum:]]+\/[\w\d]+\.[\w]+$/;

    # check for relative paths
    my $relcount = $path =~ /(\.\.\/)/g;
    while ( $relcount-- ) {
        pop @base; …
Run Code Online (Sandbox Code Playgroud)

perl http

3
推荐指数
1
解决办法
4210
查看次数

从字符串中的链接获取网站标题

字符串:"这是徽章,https: //stackoverflow.com/badges bla bla bla"

如果string contatins一个链接(见上文)我想解析该链接的网站标题.

它应该返回:徽章 - 堆栈溢出.

我怎样才能做到这一点?

谢谢.

regex perl html-parsing

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

为什么我的Perl匹配运算符不匹配任何东西?

我是Perl的新手并且正在玩屏幕抓取和正则表达式.我正在尝试提取以下HTML块的"标题"名称:

... title="The Valley Downs Chicago"><img class="vimg120" ...
Run Code Online (Sandbox Code Playgroud)

我这样做的简单Perl代码是:

@htmlBlocks = split ("margin-bottom:20px",$content);
foreach $item (@htmlBlocks)
{
if (/\stitle="([^"]*)"/six)
{
    print $1;
}
}
Run Code Online (Sandbox Code Playgroud)

但它不会打印任何东西.虽然我正在排除故障,但我会问专家你是否看到任何错误或可能有问题.非常感谢您的帮助!

regex perl

1
推荐指数
1
解决办法
264
查看次数

Perl正则表达式禁用括号提取

我正在尝试在另一个答案中找到的东西,但我遇到了一些问题:

我知道URL有更好的正则表达式,但请考虑这个例子:

@links=($content =~ m/(https?)?.*[.]com/g);
*$content has text or html
Run Code Online (Sandbox Code Playgroud)

该部分(https?)?是像链接www.google.com,但有括号它返回"http"$1其投入@links!这是一个问题,因为我想要整个链接.

什么会从文本中全局提取简单链接(或指定任何正则表达式)并将它们放入列表中?
简单来说,我的意思是:

  • http://www.google.com
  • www.google.com
  • google.com
  • https://www.google.com

regex perl extract

1
推荐指数
1
解决办法
143
查看次数

标签 统计

perl ×5

regex ×3

html-parsing ×2

extract ×1

html ×1

http ×1

language-agnostic ×1

lex ×1

parsing ×1

python ×1