|
|
1
89
无聊的。不要 parse HTML with regexes .
我修复了Tatu版本中的一些bug(现在可以使用相对URL)。 编辑: 我添加了一个新的功能,防止它跟随同一个URL两次。 现在将输出回显到标准输出,以便您可以将其重定向到所需的任何文件 编辑: 修正了乔治在回答中指出的错误。相对url将不再附加到url路径的末尾,而是覆盖它。多亏了乔治。请注意,George的回答没有考虑以下任何因素:https、user、pass或port。如果你有 http PECL扩展加载这是非常简单的使用 http_build_url |
|
|
2
16
下面是我基于上述示例/答案的实现。
爬网类:
|
|
|
3
11
|
|
|
4
9
该函数将从页面获取内容,然后爬网所有找到的链接并将内容保存到“results.txt”。这些函数接受第二个参数depth,它定义了链接应该遵循的时间长度。如果只想解析给定页面中的链接,请在此处传递1。 |
|
|
5
5
既然可以使用PHP,为什么还要使用PHP呢 wget
有关如何解析内容,请参阅 Best Methods to parse HTML 并使用搜索功能 examples . 如何解析HTML之前已经回答过多次了。 |
|
|
6
5
只需对 hobodave's 代码,这里是一个可以用来抓取页面的代码片段。这需要在服务器中启用curl扩展。
我已经在本文中解释了本教程 crawler script tutorial |
|
|
7
3
|
|
|
8
2
正如前面提到的,有很多爬虫框架可以定制,但是如果你所做的事情像你提到的那样简单,你可以很容易地从头开始。 删除链接: http://www.phpro.org/examples/Get-Links-With-DOM.html 将结果转储到文件: http://www.tizag.com/phpT/filewrite.php |
|
|
9
1
然后您还可以省略
|
|
|
10
1
你可以试试这个,也许对你有帮助
|
|
|
11
1
谢谢你@hobodave。 然而,我发现你的代码有两个弱点。 为了得到“主机”段,对原始url的解析在第一个斜杠处停止。这假定所有相关链接都从根目录开始。这只是有时候是真的。
通过在最后一个斜杠而不是第一个斜杠处打断来修复此问题
如果我相信这个页面正在被积极使用,我可能会调试第二个版本,但我怀疑我现在写的文本永远不会被任何人阅读,无论是人类还是机器人,因为这个版本已经有六年了,我甚至没有足够的声誉通过对他的代码进行注释直接通知+hobodave这些缺陷。无论如何,谢谢你。 |
|
|
12
0
我想出了下面的蜘蛛代码。 PHP - Is the there a safe way to perform deep recursion? 似乎相当快。。。。
|
|
|
13
0
值得记住的是,在抓取外部链接时(我很欣赏OP与用户自己的页面相关),您应该知道robots.txt。我发现了以下几点,希望能有所帮助 http://www.the-art-of-web.com/php/parse-robots/ . |
|
|
14
0
我创建了一个小类,从提供的url获取数据,然后提取您选择的html元素。该类使用CURL和DOMDocument。
用法示例:
答复示例:
|
|
|
15
0
这是个老问题。从那以后发生了很多好事。这是我在这个话题上的两分钱:
如果你不想处理这个问题,试试看 Crawlzone https://www.codementor.io/zstate/this-is-how-i-crawl-n98s6myxm |