SlideShare a Scribd company logo
PHP crawler and parser

      Phpday 2012
Giới thiệu


Bùi Đình Ngọc
 AITI-Aptech
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. Autoblog
3. Q&A style
   http://www.questiondb.com/
4. ứ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

•   <?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
Hỏi đáp

1. Hatforrent.com
2. Blackhatworld.com
3. DDTH.com
Cảm ơn

More Related Content

PPT
Lập trình viên PHP
PPT
Reveal the Power of Php
PPTX
Php crawler and parser
PDF
Hướng dẫn lập trình web với PHP
PPTX
Arrowjs.io
PPTX
[Học SEO Online] Bài 1: Làm quen với SEO
PDF
Chuyen de flask -- pythonvietnam.info
PPTX
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015
Lập trình viên PHP
Reveal the Power of Php
Php crawler and parser
Hướng dẫn lập trình web với PHP
Arrowjs.io
[Học SEO Online] Bài 1: Làm quen với SEO
Chuyen de flask -- pythonvietnam.info
ITLC - Hanoi - NodeJS - ArrowJS - 27-11 - 2015

Similar to Sử dụng dịch vụ crawler và parser trong PHP (20)

PDF
Authentication and Authorization
KEY
Kinh nghiệm triển khai Drupal
PDF
Zing osapi v1.3.3
PDF
Slide 01-Web Application Overview (1).pdf
PPT
Slide offline SEO Hà Nội Cùng ThuyCuong
PPTX
Tran thikimthao k37103014_wordpress
PPTX
The First 2015 Saigon WordPress Meetup
PDF
Seminar apply OOP in maintain software
PPTX
Go micro framework to build microservices
PPTX
Wordpress
PDF
Kentcources 110109221507-phpapp01
PDF
03 udpt php
PDF
Itlc2015
PPTX
JavaEE Basic_Chapter1: Introduce JavaEE
PDF
Phalcon introduction
PDF
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
PPT
Php - Xu Huong Ung Dung Va Cong Nghe 2010
PPTX
Steps to deploy deep learning model on device
PDF
Hướng dẫn sử dụng phần mềm đăng tin tự động VFP Pro
PPT
Seowap
Authentication and Authorization
Kinh nghiệm triển khai Drupal
Zing osapi v1.3.3
Slide 01-Web Application Overview (1).pdf
Slide offline SEO Hà Nội Cùng ThuyCuong
Tran thikimthao k37103014_wordpress
The First 2015 Saigon WordPress Meetup
Seminar apply OOP in maintain software
Go micro framework to build microservices
Wordpress
Kentcources 110109221507-phpapp01
03 udpt php
Itlc2015
JavaEE Basic_Chapter1: Introduce JavaEE
Phalcon introduction
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
Php - Xu Huong Ung Dung Va Cong Nghe 2010
Steps to deploy deep learning model on device
Hướng dẫn sử dụng phần mềm đăng tin tự động VFP Pro
Seowap
Ad

More from AiTi Education (20)

PPT
AiTi Education Profile
PPT
AiTi Education Software Testing Session 03
PPT
AiTi Education Software Testing Session 02 b
PPT
AiTi Education Software Testing Session 02 a
PPT
AiTi Education Software Testing Session 01 b
PPT
AiTi Education Software Testing Session 01 a
PDF
Vietnam mobile internet_2014_mwork_vietnam_mobile_day
PDF
[Vietnam Mobile Day 2014] Tăng doanh thu quảng cáo cho mobile site và ứng dụn...
PPTX
[Vietnam Mobile Day 2014] Mobile money - Xu hướng thanh toán nhỏ trên mobile ...
PDF
[Vietnam Mobile Day 2014] Mobile kết nối thế giới số và thế giới thực và vai ...
PPTX
[Vietnam Mobile Day 2014] The new mobile marketing channel: Social Wifi Marke...
PPTX
[Vietnam Mobile Day 2014] Cá nhân hóa và xác định Khách hàng mục tiêu trong q...
PPTX
[Vietnam Mobile Day 2014] Chiến lược thu hút người dùng cho ứng dụng tại thị ...
PDF
[Vietnam Mobile Day 2014] Thanh toán mobile, hiện tại và xu hướng- Nguyễn Chi...
PPTX
[Vietnam Mobile Day 2014] Thanh toán bằng thẻ ngân hàng trên mobile chưa bao ...
PPTX
[Vietnam Mobile Day 2014] How to build a mobile store app in 5 minutes - Ng...
PPTX
[Vietnam Mobile Day 2014] Touch the future of the web - Nguyễn Việt Anh - Cou...
PPT
[Vietnam Mobile Day 2014] Xu hướng trong Mobile Learning, 2014 - Nguyễn Thàn...
PDF
[Vietnam Mobile Day 2014] Toàn cảnh thị trường game smartphone Việt Nam 2013....
PDF
[Vietnam Mobile Day 2014] Toàn cảnh thị trường game smartphone Việt Nam 2013....
AiTi Education Profile
AiTi Education Software Testing Session 03
AiTi Education Software Testing Session 02 b
AiTi Education Software Testing Session 02 a
AiTi Education Software Testing Session 01 b
AiTi Education Software Testing Session 01 a
Vietnam mobile internet_2014_mwork_vietnam_mobile_day
[Vietnam Mobile Day 2014] Tăng doanh thu quảng cáo cho mobile site và ứng dụn...
[Vietnam Mobile Day 2014] Mobile money - Xu hướng thanh toán nhỏ trên mobile ...
[Vietnam Mobile Day 2014] Mobile kết nối thế giới số và thế giới thực và vai ...
[Vietnam Mobile Day 2014] The new mobile marketing channel: Social Wifi Marke...
[Vietnam Mobile Day 2014] Cá nhân hóa và xác định Khách hàng mục tiêu trong q...
[Vietnam Mobile Day 2014] Chiến lược thu hút người dùng cho ứng dụng tại thị ...
[Vietnam Mobile Day 2014] Thanh toán mobile, hiện tại và xu hướng- Nguyễn Chi...
[Vietnam Mobile Day 2014] Thanh toán bằng thẻ ngân hàng trên mobile chưa bao ...
[Vietnam Mobile Day 2014] How to build a mobile store app in 5 minutes - Ng...
[Vietnam Mobile Day 2014] Touch the future of the web - Nguyễn Việt Anh - Cou...
[Vietnam Mobile Day 2014] Xu hướng trong Mobile Learning, 2014 - Nguyễn Thàn...
[Vietnam Mobile Day 2014] Toàn cảnh thị trường game smartphone Việt Nam 2013....
[Vietnam Mobile Day 2014] Toàn cảnh thị trường game smartphone Việt Nam 2013....
Ad

Sử dụng dịch vụ crawler và parser trong PHP

  • 1. PHP crawler and parser Phpday 2012
  • 2. Giới thiệu Bùi Đình Ngọc AITI-Aptech
  • 3. Crawler or Scraper or Spider Google SE = Crawler + Indexer
  • 4. Ứng dụng •Search engine (vertical) •Data Mining •News aggregator •Autoblog – auto-generated content
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. Sử dụng dịch vụ bên ngoài
  • 9. Hatforrent dùng công nghệ gì 1. Java 2. MongoDB 3. ActiveMQ 4. Rhino 5. Google appengine – Amazon EC2
  • 10. 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
  • 11. Demo 1. Selector • Tương tự css selector
  • 12. 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/
  • 13. 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
  • 14. Ứng dụng 1. News aggregator (http://www.esexpress.net/) 2. Autoblog 3. Q&A style http://www.questiondb.com/ 4. ứng dụng đọc báo đọc trên mobile
  • 15. 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
  • 16. PHP • <?php • $title = $_POST['post']['title']; • $tag = $_POST['post']['tag']; • $content = $_POST['post']['content']; • ?>
  • 17. 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
  • 18. Hỏi đáp 1. Hatforrent.com 2. Blackhatworld.com 3. DDTH.com