【发布时间】:2012-01-01 16:46:11
【问题描述】:
这是一个验证 .edu TLD 并检查 url 是否指向 .pdf 文档或 .doc 文档的函数。
public function validateEduDomain($url) {
if( preg_match('/^https?:\/\/[A-Za-z]+[A-Za-z0-9\.-]+\.edu/i', $url) && !preg_match('/\.(pdf)|(doc)$/i', $url) ) {
return TRUE;
}
return FALSE;
现在我遇到了指向 jpg、rtf 和 simple_html_dom 尝试解析并返回其内容的其他链接。我想通过跳过所有此类链接来避免这种情况发生。问题是该列表并非详尽无遗,我希望代码跳过所有此类链接。我该怎么做?
【问题讨论】:
-
.htm, .html, .php 和更多的文件扩展名是你会遇到的你会想要抓取的文件扩展名,所以我不认为阻止所有带有扩展名的文件是一个好主意。
-
你是对的。但正如您所提到的,该函数应该有一些例外。
-
是的,但是,就像您无法列出要跳过的扩展的详尽列表一样,您也无法列出要检查的扩展列表。我什至看到过在所有 URL 末尾使用自定义扩展名的网站(例如,实际上是我的大学)。
标签: php mysql web-scraping web-crawler