从数值范围的网页中提取链接

237

我想从网页的数字序列中提取链接,如下所示:

http://example.com/page001.html
http://example.com/page002.html
http://example.com/page003.html
...
http://example.com/page329.html

我想要的输出是一个文本文件,其中包含从这些页面上的链接收集的URL:

http://www.test.com/index.html
http://www.google.com
http://www.superuser.com/questions

明确地说,我不想下载页面,我只想要链接列表。

Windows软件是个主意,但Linux也可以。我所能想到的就是用Xidel写一个很长的批处理脚本,但是遇到错误时它并不是很健壮。Curl可以下载页面范围,但是随后我需要以某种方式解析它们。


感谢Enigman让我走上正确的道路。我创建了一个Perl脚本,该脚本从文件中读取URL并吐出与$ site中存储的字符串匹配的链接:

use warnings;
use LWP;
$site = "twitter.com";

my $browser = LWP::UserAgent->new;
my @ns_headers = (
    'User-Agent' => 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36',
    'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Accept-Language' => 'en-GB,en;q=0.8',
);

open (URLLIST, 'urls.txt');
while (<URLLIST>) {
    chomp;
    print "# $_\n";
    my $response = $browser->get($_, @ns_headers);
    die "Can't get $_ -- ", $response->status_line
        unless $response->is_success;

    my @urls = $response->content =~ /\shref="?([^\s>"]+)/gi ;
    foreach $url(@urls) {
        if ($url =~ /$site/) {
            print("$url\n");
        }
    }
}
close(URLLIST);

为了生成URL列表,我制作了一个批处理脚本:

@echo off
for /l %%i in (0, 15, 75) do @echo http://www.example.com/page_%%i.html

Perl脚本只是在出现错误时停止,我更喜欢。对其进行修改以继续进行将是微不足道的。由于某些网站不喜欢任何看起来像机器人的东西,因此从Chrome剥夺了用户代理和接受数据的权限。如果您打算扫描不属于您的网站,请尊重robots.txt并设置自定义用户代理。

恩尼格曼

如果您想使用代码来执行此操作,则可以使用LWP :: Simple或Mechanize模块在Perl中进行操作。

使用LWP :: Simple模块从网页中查找所有链接后,可能会有以下内容

假设您对使用Perl的命令行解决方案感到满意。这在Windows和Linux平台上均相同。无需多做修改就可以从命令行中将URL作为参数进行解析。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用python scrapy从网页中提取链接

来自分类Dev

无法从网页中提取链接到“查看全部”按钮的链接

来自分类Dev

如何从多个网页中提取链接并删除重复项

来自分类Dev

使用 Python 抓取网页时从链接中提取 href

来自分类Dev

使用 Google 表格从网页抓取中提取链接文本

来自分类Dev

如何正确编写从网页中提取所有链接的程序?

来自分类Dev

如何从2列中提取数值范围并将两列中的范围打印为元组?

来自分类Dev

快速从字典中提取数值

来自分类Dev

R从文本中提取数值

来自分类Dev

从 .csv 文件中提取数值

来自分类Dev

Powershell:从网页中提取地址

来自分类Dev

如何从网页中提取数据?

来自分类Dev

从网页中提取单个href

来自分类Dev

如何从网页中提取表格

来自分类Dev

如何从网页中提取网址

来自分类Dev

从文件中提取链接

来自分类Dev

从网站中提取链接

来自分类Dev

如何基于用作每列标准的数学运算从2列中提取数值范围?

来自分类Dev

我需要使用Python / BeautifulSoup从网页中提取嵌入式.xlsx链接的帮助

来自分类Dev

使用RVest从网页中提取名称列表和基础超链接

来自分类Dev

从 Php 或 cURL 获取的网页上的链接中提取 URL 和锚文本

来自分类Dev

如何从2列包含数字序列的列中提取数值范围并从两列中打印范围(不同的增量值)?

来自分类Dev

从日期范围中提取天数

来自分类Dev

从日期范围中提取天数

来自分类Dev

从日期范围中提取日期

来自分类Dev

如何从函数值中提取特定列?

来自分类Dev

使用SQL从字段中提取数值数据

来自分类Dev

从String Regex PHP中提取数值

来自分类Dev

从文本中提取带指数的双数值

Related 相关文章

热门标签

归档