Web Crawler Là Gì - CáCh Bot Công Cụ Tìm Kiếm Web Crawler Ra Sao

      85
Web crawler là gì?

Web crawler bao gồm công dụng lấy đọc tin tự website , trích xuất ra các thông tin người tiêu dùng nên, đôi khi cũng tra cứu phần nhiều links gồm vào trang web kia và tự động hóa truy vấn vào đầy đủ link đó.Các tên thường gọi không giống của crawler là robot, bot, spider, worm, ant. Nhưng vừa mới đây tên gọi crawler là thông dụng độc nhất.

Mô hình crawler đơn giản:

Chọn URL khởi đầuSử dụng HTML protocol để mang trang webTrích xuất ra các liên kết. Lưu lại vào queueLặp đi tái diễn bước 2,3
*

Cụ thể rộng, các module quan trọng đặc biệt của một crawler:

URL Frontier: cất danh sách các URl chưa được lấyFetch module lấy các trang webDNS resolution module xác định cửa hàng của hệ thống của website đã lấyParsing module trích xuất text và link tự trang web vẫn lấyDuplicate elimination module loại bỏ những URL trùng lặp
*
Xây dựng website crawler cùng với rails với mechanize

lấy một ví dụ minc họa về việc lấy báo cáo đơn vị đất từ trang http://nhadat24h.netCài đặt:

gem "mechanize"bundle installCrawl data:Khởi tạo đối tượng

agent = Mechanize.newLấy thông tin trang, trong trang này chúng ta vẫn có một list các công ty đang được phân phối với mang đến thuê:

page = agent.get "http://nhadat24h.net/ban-bat-dong-san-viet-nam-nha-dat-viet-nam-s686599" + "/#page_number"Để mang được biết tin từ từng page, họ cần có được kết cấu của trang:

*
Nhỏng các bạn có thể thấy, họ gồm id của từng ngôi trường, vậy bạn có thể đem như sau:

crawled_page = Mechanize.new.get room_url#get price crawled_page.at("#ContentPlaceHolder2_lbGiaTien").try :text#get areacrawled_page.at("#ContentPlaceHolder2_lbDienTich").try :textLấy báo cáo chi tiết, bọn họ đã truy cập vào từng trang đã đưa sinh hoạt bên trên để lấy đọc tin chi tiết từng nhà:

room_url = "http://nhadat24h.net" + link.attributes<"href">.try :valuepage.search("#ContentPlaceHolder2_KetQuaTimKiem1_Pn1 ").each vì |link| crawl_room room_url endprivatedef crawl_room room_url crawled_params = Crawlers::RoomFromNhadat24h.new(room_url).crawled_params room = Room.find_or_initialize_by code: crawled_params<:code>, provider_site_cd: crawled_params<:provider_site_cd> room.assign_attributes crawled_params room.saveendVậy là họ đã xong việc crawl.

Chụ ý:thường thì, bọn họ đang lưu trữ con số lớn lao biết tin sau thời điểm crawl, vậy để có tốc độ phát âm ghi cao, năng suất lớn cùng dễ dàng không ngừng mở rộng, chúng ta phải áp dụng MongoDB.Để xem thêm về MongoDB những bạn có thể xem thêm tại: https://gocnhintangphat.com/tags/mongodb

Demo

Demo project về crawl thông báo nhà đất tự 2 trang http://www.muabannhadat.vn với http://nhadat24h.nethttps://github.com/otchoo/room_crawler/tree/develop