Answers:
检出linkchecker-它会爬行网站(同时遵循robots.txt
)并生成报告。从那里,您可以编写脚本来创建目录树。
robots.txt
文件,那就意味着您可以抓紧自己的内心。
如果浏览器中具有开发者控制台(JavaScript),则可以在以下位置键入此代码:
urls = document.querySelectorAll('a'); for (url in urls) console.log(urls[url].href);
缩短:
n=$$('a');for(u in n)console.log(n[u].href)
$$
运算符?还是只是一个任意的函数名称,就像n=ABC(''a');
我不了解如何urls
获取所有带有'a'标签的元素一样。你可以解释吗?我假设它不是jQuery。我们在说什么原型库功能?
$$()
基本上是的简写document.querySelectorAll()
。此链接的更多信息:developer.mozilla.org/en-US/docs/Web/API/Document/…–
如果这是一个编程问题,那么我建议您编写自己的正则表达式来解析所有检索到的内容。目标标记是IMG和A,用于标准HTML。对于JAVA,
final String openingTags = "(<a [^>]*href=['\"]?|<img[^> ]* src=['\"]?)";
这与Pattern和Matcher类一起应该可以检测标记的开头。如果还需要CSS,请添加LINK标记。
但是,这并不像您最初想象的那么容易。许多网页格式不正确。如果您需要考虑所有不规则表达,那么以编程方式提取人类可以“识别”的所有链接确实非常困难。
祝好运!
function getalllinks($url) {
$links = array();
if ($fp = fopen($url, 'r')) {
$content = '';
while ($line = fread($fp, 1024)) {
$content. = $line;
}
}
$textLen = strlen($content);
if ($textLen > 10) {
$startPos = 0;
$valid = true;
while ($valid) {
$spos = strpos($content, '<a ', $startPos);
if ($spos < $startPos) $valid = false;
$spos = strpos($content, 'href', $spos);
$spos = strpos($content, '"', $spos) + 1;
$epos = strpos($content, '"', $spos);
$startPos = $epos;
$link = substr($content, $spos, $epos - $spos);
if (strpos($link, 'http://') !== false) $links[] = $link;
}
}
return $links;
}
试试这个代码...。