Hướng dẫn scrapy python - trăn trị liệu
Show Đã đăng vào thg 3 20, 2019 9:48 SA 3 phút đọc 3 phút đọc Trong bài viết này mình sẽ giới thiệu cho các bạn một thư viện rất hữu ích của python khi mà chúng ta muốn crawl dữ liệu từ các trang web. Giả sử thế này, bây giờ bạn là quản lí của thế giới di dộng và bạn muốn biết khách hàng nghĩ thế nào về một sản phẩm mà bạn đã đăng lên. Với trường hợp này thì các bạn sẽ biết được điều đó qua các bình luận, nhưng các bạn muốn xem dữ liệu dạng thống kê báo cáo chứ không phải lên trang web đọc từng bình luận. Lúc này thì scrapy có thể giúp bạn crawl dữ liệu bình luận của user, và xuất dạng json, csv... Giờ bắt tay vào làm nhé 1. Tạo project Scrapy
khi đó project chúng ta vừa tạo sẽ có cấu trúc như sau:
Sau khi tạo xong chạy các bạn lên trang https://www.thegioididong.com/ và chọn một sản phẩm bất kì muốn crawl comments. Ví dụ mình vào link: https://www.thegioididong.com/dtdd/samsung-galaxy-a50 Bây giờ đến bước crawl comment về B1. Trong file items.py chúng ta sẽ viết code thêm như sau:
time, content, user là các trường mình muốn crawl : tương ứng là thời gian bình luận, nội dung bình luận, và tên người bình luận . B2. Trong spiders/ tạo một file tên là crawler_spider.py với nội dung như sau:
ul[@class="listcomment"]/li => Inspect để xem cấu trúc html trong thẻ bên trong có các thẻ li, mỗi li chứa thông tin 1 bình luận. => Inspect để xem cấu trúc html trong thẻ
Inspect 1 thẻ li chứa comment nó sẽ có cấu trúc như sau:
div[@class="rowuser"]/a/strong/text() => lấy tên người bình luận => lấy tên người bình luận div[@class="question"]/text() => lấy nội dung bình luận => lấy nội dung bình luận div[@class="actionuser"]/a[@class="time"]/text() => lấy thời gian bình luận => lấy thời gian bình luận B3. Giờ mình muốn xuất ra một file lưu giữ liệu tên là comments mình sẽ chạy lệnh sau
Kết quả file json mình export được: trang tgdd phân trang 10 bản ghi đầu nên mình mới lấy data của trang đầu tiên, sau khi decode thì được như ảnh trên. Vậy là mình đã hướng dẫn các bạn dùng scrapy để crawl bình luận trên trang tgdd rồi, còn những bình luận trong phân trang các bạn có thể tìm hiểu các để crawl thêm nhé. Thanks u! link tham khảo: http://doc.scrapy.org/en/latest/intro/install.html http://doc.scrapy.org/en/latest/intro/install.html http://doc.scrapy.org/en/latest/intro/tutorial.html# All rights reserved |