gpt4 book ai didi

php - 定期 HTML 抓取

转载 作者:太空宇宙 更新时间:2023-11-04 14:07:14 27 4
gpt4 key购买 nike

我正在考虑开发一个站点,服务器将定期抓取另一个站点,以便为我的数据库中的某些条目收集内容。我的问题如下...

  1. 如何让服务器及时执行抓取?
  2. 你能让它执行 php 还是你用什么语言来执行抓取?
  3. 有什么好的 API 可以做到这一点吗?
  4. 我应该考虑自己构建吗?如果是这样,关于如何开始的一些建议会很棒

基本上,我想做的事情是让服务器执行一个脚本(比如说每小时一次),它会在数据库中找到尚未在另一个站点上抓取的所有条目。它将从这些条目中获取一定的值,并将使用它们来抓取另一个站点...它可能会请求这样的 url:www.anothersite.com/images?q=entryindb .

我想要它做的是抓取 HTML,返回一个数组,并将值记录到数据库中。这就是我希望爬虫寻找的内容

Find all instances of 
<img> inside <a> inside <td> inside <tr> inside <tbody> inside <table> inside <div id='content'>
Return array of the img.src from all instances.

这样的事情可能吗? - 如果是这样,我将如何着手去做? - 请记住,Web 开发明智,到目前为止我唯一的经验(服务器端)是使用 PHP。

更新:我将使用基于 linux 的服务器,所以我想我应该如何使用 chron-scripting?

最佳答案

  1. 你可以使用cron
  2. 是的,您可以运行 PHP 脚本
  3. 虽然没有完整的抓取 API (AFAIK),但有一些类可以帮助您解析和遍历 DOM 文档。
  4. 如果您按照以下步骤操作,您可以在几分钟内完成设置

1。你需要phpQuery让你的生活更轻松

here下载phpQuery-0.9.5.386-onefile.zip .

2。你的 PHP 文件应该是这样的

require_once 'phpQuery-onefile.php';
$html = file_get_contents('http://www.othersite.com');
phpQuery::newDocumentXHTML($html);

$elements = pq('#content table tbody tr td a img');
$images = array();
foreach($elements as $img){
$images[] = pq($img)->attr('src');
}

$images 数组将包含所有图像源的列表。

3。将上面的代码保存在一个文件中,比如 crawler.php

然后在 cron 选项卡中,如果您希望爬虫每小时运行一次,您可以这样做:

0 * * * * php /path/to/your/crawler.php 

关于php - 定期 HTML 抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7421670/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com