Hướng dẫn Scrapy: Làm thế nào để Tạo một Web-Crawler Sử dụng Scrapy?



Trong bài viết Hướng dẫn trị liệu này, bạn sẽ học cách tạo trình thu thập thông tin web với các kỹ thuật trích xuất dữ liệu khác nhau và các cách để lưu trữ dữ liệu trên cơ sở dữ liệu.

Lướt web là một cách hiệu quả để thu thập dữ liệu từ các trang web, nó đã trở thành một công cụ hiệu quả trong . Với nhiều thư viện trình bày cho web cạo như , công việc của nhà khoa học dữ liệu trở nên tối ưu. Scrapy là một khung công tác web mạnh mẽ được sử dụng để trích xuất, xử lý và lưu trữ dữ liệu. Chúng ta sẽ tìm hiểu cách chúng ta có thể tạo một trình thu thập thông tin web trong hướng dẫn trị liệu này, sau đây là các chủ đề được thảo luận trong blog này:

Trị liệu là gì?

Scrapy là một khung thu thập dữ liệu web mã nguồn mở và miễn phí được viết bằng python. Ban đầu nó được thiết kế để biểu diễn , nhưng cũng có thể được sử dụng để trích xuất dữ liệu bằng API. Nó được duy trì bởi Scrapinghub ltd.





Scrapy là một gói hoàn chỉnh khi nói đến việc tải xuống các trang web, xử lý và lưu trữ dữ liệu trên .

cách tạo từ điển trong java

Nó giống như một cường quốc khi quét web với nhiều cách để cạo một trang web. Scrapy xử lý các tác vụ lớn hơn một cách dễ dàng, quét nhiều trang hoặc một nhóm URL trong vòng chưa đầy một phút. Nó sử dụng một twister hoạt động không đồng bộ để đạt được sự đồng thời.



Nó cung cấp các hợp đồng nhện cho phép chúng tôi tạo các trình thu thập thông tin chung cũng như sâu. Scrapy cũng cung cấp các đường dẫn mục để tạo các chức năng trong một con nhện có thể thực hiện các hoạt động khác nhau như thay thế các giá trị trong dữ liệu, v.v.

kiến trúc trị liệu-hướng dẫn trị liệu-edureka

Trình thu thập thông tin web là gì?

Trình thu thập thông tin web là một chương trình tự động tìm kiếm tài liệu trên web. Chúng chủ yếu được lập trình cho hành động lặp lại để duyệt tự động.

Làm thế nào nó hoạt động?



Trình thu thập thông tin web khá giống với một thủ thư. Nó tìm kiếm thông tin trên web, phân loại thông tin và sau đó lập chỉ mục và lập danh mục thông tin để thông tin được thu thập thông tin được truy xuất và lưu trữ tương ứng.

Các hoạt động sẽ được thực hiện bởi trình thu thập thông tin được tạo trước, sau đó trình thu thập thông tin thực hiện tất cả các hoạt động đó một cách tự động sẽ tạo chỉ mục. Các chỉ mục này có thể được truy cập bởi một phần mềm đầu ra.

Chúng ta hãy xem xét các ứng dụng khác nhau mà trình thu thập thông tin web có thể được sử dụng cho:

  • Cổng so sánh giá tìm kiếm chi tiết sản phẩm cụ thể để so sánh giá trên các nền tảng khác nhau bằng cách sử dụng trình thu thập thông tin web.

  • Trình thu thập thông tin web đóng một vai trò rất quan trọng trong lĩnh vực khai thác dữ liệu để truy xuất thông tin.

  • Các công cụ phân tích dữ liệu sử dụng trình thu thập dữ liệu web để tính toán dữ liệu cho số lần xem trang, cả liên kết đến và đi.

  • Trình thu thập thông tin cũng phục vụ đến các trung tâm thông tin để thu thập dữ liệu như cổng tin tức.

Làm thế nào để cài đặt Scrapy?

Để cài đặt scrapy trên hệ thống của bạn, bạn nên cài đặt nó trên virtualenv chuyên dụng. Cài đặt hoạt động khá giống với bất kỳ gói nào khác trong python, nếu bạn đang sử dụng chung cư môi trường, sử dụng lệnh sau để cài đặt scrapy:

conda install -c conda-forge scrapy

bạn cũng có thể sử dụng môi trường pip để cài đặt liệu pháp,

cách thiết lập nhật thực
pip cài đặt phế liệu

Có thể có một số phụ thuộc biên dịch tùy thuộc vào hệ điều hành của bạn. Scrapy được viết bằng python nguyên chất và có thể phụ thuộc vào một số gói python như:

  • lxml - Đây là một trình phân tích cú pháp XML và HTML hiệu quả.

  • parcel - Thư viện trích xuất HTML / XML được viết trên cùng trên lxml

  • W3lib - Nó là một công cụ trợ giúp đa năng để xử lý các URL và mã hóa trang web

  • xoắn - Một khung mạng không đồng bộ

  • mật mã - Nó trợ giúp trong các nhu cầu bảo mật cấp độ mạng khác nhau

Bắt đầu dự án trị liệu đầu tiên của bạn

Để bắt đầu dự án trị liệu đầu tiên của bạn, hãy chuyển đến thư mục hoặc vị trí bạn muốn lưu các tệp của mình và thực hiện lệnh sau

tên dự án startproject trị liệu

Sau khi thực hiện lệnh này, bạn sẽ nhận được các thư mục sau được tạo trên vị trí đó.

  • Tên dự án/

    • scrapy.cfg: nó triển khai tệp cấu hình

  • Tên dự án/

    • __init__.py: mô-đun python của dự án

    • items.py: tệp định nghĩa mục dự án

    • middlewares.py: tệp phần mềm trung gian của dự án

    • pipelines.py: tệp đường ống dự án

    • settings.py: tệp cài đặt dự án

  • nhện /

    • __init__.py: thư mục mà sau này bạn sẽ đặt các trình thu thập thông tin của mình

Tạo con nhện đầu tiên của bạn

Nhện là các lớp mà chúng tôi xác định và sử dụng liệu pháp để thu thập thông tin từ web. Bạn phải scrapy phân lớp, xem xét và xác định các yêu cầu ban đầu để thực hiện.

Bạn viết mã cho spider của mình trong một tệp python riêng và lưu nó trong thư mục tên dự án / spiders trong dự án của bạn.

quote_spider.py

nhập lớp trị liệu QuotesSpider (scrapy.Spider): name = 'quote' def start_request (self): urls = ['http://quotes.toscrape.com/page/1/', http://quotes.toscrape.com / page / 2 /,] cho url trong urls: output scrapy.Request (url = url, callback = self.parse) phân tích cú pháp def (self, response): page = response.url.split ('/') [- 2 ] filename = 'quote-% s.html'% trang có mở (filename, 'wb') là f: f.write (response.body) self.log ('file đã lưu% s'% filename)

Như bạn có thể thấy, chúng tôi đã xác định các chức năng khác nhau trong trình thu thập thông tin của chúng tôi,

  • Tên: Nó xác định con nhện, nó phải là duy nhất trong suốt dự án.

  • start_requests (): Phải trả về một số yêu cầu có thể lặp lại mà con nhện sẽ bắt đầu thu thập thông tin.

  • parse (): Nó là một phương thức sẽ được gọi để xử lý phản hồi được tải xuống với mỗi yêu cầu.

Trích xuất dữ liệu

Cho đến nay, con nhện không trích xuất bất kỳ dữ liệu nào, nó chỉ lưu toàn bộ tệp HTML. Một con nhện liệu pháp thường tạo ra nhiều từ điển chứa dữ liệu được trích xuất từ ​​trang. Chúng tôi sử dụng từ khóa lợi nhuận trong python trong lệnh gọi lại để trích xuất dữ liệu.

nhập lớp trị liệu QuotesSpider (scrapy.Spider): name = 'quote' start_urls = [http://quotes.toscrape.com/page/1/ ', http://quotes.toscrape.com/page/2/,] phân tích cú pháp def (tự, phản hồi): để trích dẫn trong response.css ('div.quote'): output {'text': quote.css (span.text :: text '). get (),' author ': quote .css (small.author::text ') get (),' tags ': quote.css (div.tags a.tag :: text'). getall ()}

Khi bạn chạy spider này, nó sẽ xuất dữ liệu được trích xuất cùng với nhật ký.

Lưu trữ dữ liệu

Cách đơn giản nhất để lưu trữ dữ liệu đã trích xuất là sử dụng xuất nguồn cấp dữ liệu, sử dụng lệnh sau để lưu trữ dữ liệu của bạn.

báo giá thu thập thông tin phế liệu -o quote.json

Lệnh này sẽ tạo một tệp quote.json chứa tất cả các mục đã được cạo, được tuần tự hóa trong JSON .

Phần này sẽ đưa chúng ta đến phần cuối của bài viết này, nơi chúng ta đã tìm hiểu cách chúng ta có thể tạo một trình thu thập thông tin web bằng cách sử dụng scrapy trong python để quét một trang web và trích xuất dữ liệu thành một tệp JSON. Tôi hy vọng bạn rõ ràng với tất cả những gì đã được chia sẻ với bạn trong hướng dẫn này.

Chia tách làm gì trong java

Nếu bạn thấy bài viết này về “Hướng dẫn trị liệu” có liên quan, hãy xem một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu.

Chúng tôi ở đây để giúp bạn từng bước trên hành trình của mình và đưa ra một chương trình giảng dạy được thiết kế cho sinh viên và các chuyên gia muốn trở thành . Khóa học được thiết kế để cung cấp cho bạn khởi đầu mới về lập trình Python và đào tạo bạn về cả khái niệm Python cốt lõi và nâng cao cùng với nhiều giống

Nếu bạn gặp bất kỳ câu hỏi nào, vui lòng đặt tất cả câu hỏi của bạn trong phần nhận xét của “Hướng dẫn trị liệu” và nhóm của chúng tôi sẽ sẵn lòng giải đáp.