พอมีวิธีใช้งาน Bot Crawl ที่ดึงข้อมูลจากเว็ปแล้วนำมาบันทึกไว้ไหมครับ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา พอมีวิธีใช้งาน Bot Crawl ที่ดึงข้อมูลจากเว็ปแล้วนำมาบันทึกไว้ไหมครับ

พอมีวิธีใช้งาน Bot Crawl ที่ดึงข้อมูลจากเว็ปแล้วนำมาบันทึกไว้ไหมครับ
พอดีผมอยากทำ Bot Crawl ข้อมูลให้เก็บข้อมูลเว็ปนั้นๆ อาจจะมีการตั้งค่า BOT ให้เข้าสู่ระบบแล้วดึงข้อมูลหน้าที่ต้องการได้ พอจะมีแนวทางไหมครับ


Nutpongsakorn Suwannarong 24-02-2020 16:48:01

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
ลองดูตัว https://github.com/spatie/crawler เป็นแนวทาง 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
require_once("../vendor/autoload.php");
 
use Spatie\Crawler\Crawler;
/*use Illuminate\Console\Command;*/
 
use \Spatie\Crawler\CrawlObserver;
use GuzzleHttp\Exception\RequestException;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\UriInterface;
 
class TitleLogger extends CrawlObserver{
 
    private $pages =[];
 
 
    public function crawled(
        UriInterface $url,
        ResponseInterface $response,
        ?UriInterface $foundOnUrl = null
    )
    {
 
        $path = $url->getPath();
        $doc = new DOMDocument();
        @$doc->loadHTML($response->getBody());
        $title = $doc->getElementsByTagName("title")[0]->nodeValue;
 
        $this->pages[] = [
            'path'=>urldecode($path),
            'title'=> urldecode($title)
        ];
    }
 
    public function crawlFailed(
        UriInterface $url,
        RequestException $requestException,
        ?UriInterface $foundOnUrl = null
    )
    {
        echo 'failed';
    }
 
    public function finishedCrawling()
    {
        echo 'crawled ' . count($this->pages) . ' urls' . PHP_EOL;
        foreach ($this->pages as $page){
            echo sprintf("Url  path: %s Page title: %s%s", $page['path'], $page['title'], PHP_EOL);
        }
    }
 
}
 
Crawler::create()
        ->setCrawlObserver(new TitleLogger())
        ->setMaximumCrawlCount(2)
        ->ignoreRobots() //github doesnt like scrapers...
        ->startCrawling('https://github.com/spatie/crawler');
?>


ninenik 24-02-2020






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ