SlideShare une entreprise Scribd logo
1  sur  17
PHP crawler and parser

      Phpday 2012
Crawler or Scraper or Spider




  Google SE = Crawler + Indexer
Ứng dụng


•Search engine (vertical)
•Data Mining
•News aggregator
•Autoblog – auto-generated content
Web crawler thách thức

1. Số lượng page rất lớn
2. Cấu trúc mã html phức tạp
3. Tốc độ , tần xuất cần nhanh
Không phải là điểm mạnh của
             php
  1. PHP cần mô hình phức tạp cho
     việc crawler
  2. Bóc tách dữ liệu với PHP tương
     đối khó
    •   regular expression là không đủ
    •   PHP DOM và các thư viện (dom)
        khác , chậm và ngốn memory
Một số giải pháp cho php
1. Sử dụng cloud computing cho việc xử lý và
   lưu trữ (cloud rất phù hợp với stateless)
2. Dùng mô hình job queue cho việc bóc tách
   đọc lập
Sử dụng dịch vụ bên ngoài
Hatforrent dùng công nghệ gì

 1.   Java
 2.   MongoDB
 3.   ActiveMQ
 4.   Rhino
 5.   Google appengine – Amazon EC2
Tại sao lại dùng hatforrent

1. Chỉ việc nhận content
2. Không cron , không crawl , không tốn
   resource
3. Đủ mạnh để lấy 99% content trên thế
   giới
4. Đang phát triển rất nhanh
Demo

1. Selector
• Tương tự css selector
Document

•   http://hatforrent.com/Some-tricks-to-
    get-content-with-Hatforrent.html
•   http://www.youtube.com/watch?featu
    re=player_embedded&v=LdqM_2S0JO
    k
•   http://blog.hatforrent.com/
Hỗ trợ
1.   Lấy content ở tất cả các trang web
2.   Dải IP rộng (tránh bị blacklisted)
     ip4:216.239.32.0/19
     ip4:64.233.160.0/19
     ip4:66.249.80.0/20
     ip4:72.14.192.0/18
     ip4:209.85.128.0/17
     ip4:66.102.0.0/20
     ip4:74.125.0.0/16
     ip4:64.18.0.0/20
     ip4:207.126.144.0/20
     ip4:173.194.0.0/16
3 .Đẩy dữ liệu vào wordpress , blogspot , rest API
Ứng dụng
1. News aggregator
   http://www.esexpress.net/
2. http://tintute.com/
3. Autoblog

4. Q&A style
   http://www.questiondb.com/
5. ứng dụng đọc báo đọc trên mobile
API

1. Đã có public API để các trang có thể
   nhận dữ liệu từ hatforrent (Rest Style)
2. Đang phát triển API đẩy thẳng vào các
   loại csdl phổ biến
PHP Example

•   <?php
    •    $title = $_POST['post']['title'];
    •    $tag = $_POST['post']['tag'];
    •    $content = $_POST['post']['content'];
•   ?>
Cần cộng đồng hỗ trợ

1. Viết plugin để làm việc trực tiếp trên
   WordPress để (như WP-robot)
2. Viết PHP API để có thể đẩy content
   vào
• Joomla
• Drupal
• Magento
• Forum Engine
Cảm ơn

Contenu connexe

Similaire à Php crawler and parser

Authentication and Authorization
Authentication and AuthorizationAuthentication and Authorization
Authentication and AuthorizationTechMaster Vietnam
 
[Học SEO Online] Bài 1: Làm quen với SEO
[Học SEO Online] Bài 1: Làm quen với SEO[Học SEO Online] Bài 1: Làm quen với SEO
[Học SEO Online] Bài 1: Làm quen với SEOĐình Tỉnh
 
Tran thikimthao k37103014_wordpress
Tran thikimthao k37103014_wordpressTran thikimthao k37103014_wordpress
Tran thikimthao k37103014_wordpressTím Biếc
 
Slide 01-Web Application Overview (1).pdf
Slide 01-Web Application Overview (1).pdfSlide 01-Web Application Overview (1).pdf
Slide 01-Web Application Overview (1).pdfHuyVnh4
 
Seminar apply OOP in maintain software
Seminar apply OOP in maintain softwareSeminar apply OOP in maintain software
Seminar apply OOP in maintain softwareVKhang Yang
 
Go micro framework to build microservices
Go micro framework to build microservicesGo micro framework to build microservices
Go micro framework to build microservicesTechMaster Vietnam
 
The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupKhanhPham
 
Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01Giang Nguyễn
 
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì?  9 Thứ thú vị có thể làm với PHPPHP có thể làm gì?  9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHPNIIT - ICT Hà Nội
 
Lap Trinh Php Va My Sql
Lap Trinh Php Va My SqlLap Trinh Php Va My Sql
Lap Trinh Php Va My Sqlminhki
 
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.comTai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.comDang Thao
 
Lap trinh php va my sql
Lap trinh php va my sqlLap trinh php va my sql
Lap trinh php va my sqlhieusy
 
Tai lieu-laptrinh ph-pvamysql
Tai lieu-laptrinh ph-pvamysqlTai lieu-laptrinh ph-pvamysql
Tai lieu-laptrinh ph-pvamysqlJohn Phan
 
Haiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysqlHaiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysqlGiang Nguyễn
 
Itlc2015
Itlc2015Itlc2015
Itlc2015Huy Do
 

Similaire à Php crawler and parser (20)

Authentication and Authorization
Authentication and AuthorizationAuthentication and Authorization
Authentication and Authorization
 
[Học SEO Online] Bài 1: Làm quen với SEO
[Học SEO Online] Bài 1: Làm quen với SEO[Học SEO Online] Bài 1: Làm quen với SEO
[Học SEO Online] Bài 1: Làm quen với SEO
 
Zing osapi v1.3.3
Zing osapi v1.3.3Zing osapi v1.3.3
Zing osapi v1.3.3
 
Tran thikimthao k37103014_wordpress
Tran thikimthao k37103014_wordpressTran thikimthao k37103014_wordpress
Tran thikimthao k37103014_wordpress
 
Slide offline SEO Hà Nội Cùng ThuyCuong
Slide offline SEO Hà Nội Cùng ThuyCuongSlide offline SEO Hà Nội Cùng ThuyCuong
Slide offline SEO Hà Nội Cùng ThuyCuong
 
Slide 01-Web Application Overview (1).pdf
Slide 01-Web Application Overview (1).pdfSlide 01-Web Application Overview (1).pdf
Slide 01-Web Application Overview (1).pdf
 
Seminar apply OOP in maintain software
Seminar apply OOP in maintain softwareSeminar apply OOP in maintain software
Seminar apply OOP in maintain software
 
Go micro framework to build microservices
Go micro framework to build microservicesGo micro framework to build microservices
Go micro framework to build microservices
 
Phalcon introduction
Phalcon introductionPhalcon introduction
Phalcon introduction
 
Wordpress
WordpressWordpress
Wordpress
 
03 udpt php
03 udpt   php03 udpt   php
03 udpt php
 
The First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress MeetupThe First 2015 Saigon WordPress Meetup
The First 2015 Saigon WordPress Meetup
 
Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01
 
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì?  9 Thứ thú vị có thể làm với PHPPHP có thể làm gì?  9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
 
Lap Trinh Php Va My Sql
Lap Trinh Php Va My SqlLap Trinh Php Va My Sql
Lap Trinh Php Va My Sql
 
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.comTai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
Tai lieu-laptrinh ph-pvamysql - bachkhoaaptech.com
 
Lap trinh php va my sql
Lap trinh php va my sqlLap trinh php va my sql
Lap trinh php va my sql
 
Tai lieu-laptrinh ph-pvamysql
Tai lieu-laptrinh ph-pvamysqlTai lieu-laptrinh ph-pvamysql
Tai lieu-laptrinh ph-pvamysql
 
Haiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysqlHaiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysql
 
Itlc2015
Itlc2015Itlc2015
Itlc2015
 

Php crawler and parser

  • 1. PHP crawler and parser Phpday 2012
  • 2. Crawler or Scraper or Spider Google SE = Crawler + Indexer
  • 3. Ứng dụng •Search engine (vertical) •Data Mining •News aggregator •Autoblog – auto-generated content
  • 4. Web crawler thách thức 1. Số lượng page rất lớn 2. Cấu trúc mã html phức tạp 3. Tốc độ , tần xuất cần nhanh
  • 5. Không phải là điểm mạnh của php 1. PHP cần mô hình phức tạp cho việc crawler 2. Bóc tách dữ liệu với PHP tương đối khó • regular expression là không đủ • PHP DOM và các thư viện (dom) khác , chậm và ngốn memory
  • 6. Một số giải pháp cho php 1. Sử dụng cloud computing cho việc xử lý và lưu trữ (cloud rất phù hợp với stateless) 2. Dùng mô hình job queue cho việc bóc tách đọc lập
  • 7. Sử dụng dịch vụ bên ngoài
  • 8. Hatforrent dùng công nghệ gì 1. Java 2. MongoDB 3. ActiveMQ 4. Rhino 5. Google appengine – Amazon EC2
  • 9. Tại sao lại dùng hatforrent 1. Chỉ việc nhận content 2. Không cron , không crawl , không tốn resource 3. Đủ mạnh để lấy 99% content trên thế giới 4. Đang phát triển rất nhanh
  • 10. Demo 1. Selector • Tương tự css selector
  • 11. Document • http://hatforrent.com/Some-tricks-to- get-content-with-Hatforrent.html • http://www.youtube.com/watch?featu re=player_embedded&v=LdqM_2S0JO k • http://blog.hatforrent.com/
  • 12. Hỗ trợ 1. Lấy content ở tất cả các trang web 2. Dải IP rộng (tránh bị blacklisted) ip4:216.239.32.0/19 ip4:64.233.160.0/19 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:209.85.128.0/17 ip4:66.102.0.0/20 ip4:74.125.0.0/16 ip4:64.18.0.0/20 ip4:207.126.144.0/20 ip4:173.194.0.0/16 3 .Đẩy dữ liệu vào wordpress , blogspot , rest API
  • 13. Ứng dụng 1. News aggregator http://www.esexpress.net/ 2. http://tintute.com/ 3. Autoblog 4. Q&A style http://www.questiondb.com/ 5. ứng dụng đọc báo đọc trên mobile
  • 14. API 1. Đã có public API để các trang có thể nhận dữ liệu từ hatforrent (Rest Style) 2. Đang phát triển API đẩy thẳng vào các loại csdl phổ biến
  • 15. PHP Example • <?php • $title = $_POST['post']['title']; • $tag = $_POST['post']['tag']; • $content = $_POST['post']['content']; • ?>
  • 16. Cần cộng đồng hỗ trợ 1. Viết plugin để làm việc trực tiếp trên WordPress để (như WP-robot) 2. Viết PHP API để có thể đẩy content vào • Joomla • Drupal • Magento • Forum Engine