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

คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
ความคิดเห็นที่
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... ?> |

ขอบคุณทุกการสนับสนุน
![]()