Web Scraping dễ dàng với Scrapy (phần 13)

Cái gì chúng ta đã làm chính xác ở đây?

Chúng ta trước tiên thực thi phương thức from_crawler() cái cho phép chúng ta khởi tạo dòng ống của chúng ta từ
một bối cảnh crawler và truy cập các thiết lập crawler. Trong ví dụ của chúng ta, chúng ta cần nó nhận lối truy
cập vào thông tin kết nối CSDL, cái chúng ta vừa chỉ ra trong product_scraper/settings.py.
All right, from_crawler() khởi tạo dòng ống của chúng ta và trả về thực thể khởi tạo đến crawler. Tiếp theo,
open_spider sẽ được gọi, nơi chúng ta khởi tạo thực thể khởi tạo MySQL của chúng ta và tạo kết nối CSDL. Lovely!
Bây giờ, chúng ta chính ngồi và chờ cho spider của chúng ta gọi process_item() cho mỗi item, chính như nó đã làm
trước kia với PriceValidatorPipeline, khi chúng ta lấy item và chạy một phát biểu INSERT để lưu giữ nó trong products
table của chúng ta. Khá theo đường thẳng, có phải không?
Và vì chúng ta là cư dân mạng tốt, chúng ta làm sạch khi chúng ta thực hiện xong trong close_spider().
Tại điểm này chúng ta thực hiện xong với dòng ống CSDL của chúng ta và chỉ cần khai báo nó một lần nữa trong
product_scraper/settings.py, để rằng crawler của chúng ta biết về nó.

ITEM_PIPELINES = {

‘product_scraper.pipelines.PriceValidatorPipeline’: 100
‘product_scraper.pipelines.MySQLPipeline’: 200

}

Chúng ta chỉ ra “200” như ưu tiên ở đây, để đảm bảo nó chạy sau dòng ống hiệu lực hóa giá.
Khi chúng ta bây giờ chạy crawler của chúng ta, nó nên scrape các trang chỉ ra, truyền dữ liệu tới dòng ống
hiệu lực hóa giá của chúng ta, nơi price được hiệu lực hóa và chuyển đổi đúng đắn thành một số, và cuối cùng truyền
mọi thứ tới dòng ống MySQL của chúng ta, cái sẽ duy trì product trong CSDL của chúng ta.

Chia sẻ