Hỏi hàm xử lý dữ liệu trong Scrapy Python giống như HTML DOM trong PHP

Em muốn xử lý dữ liệu sau khi crawl về bằng Scrapy nhưng không biết phải sử dụng hàm nào trong Scrapy.

Nội dung em muốn xử lý như sau:

  • xóa tất cả css trong dữ liệu crawl về, chỉ dữ lại thẻ tag thôi
  • loại bỏ tất cả đường link trong text
  • loại bỏ tất cả thẻ span trong html (không làm thay đổi nội dung)

Nhưng cái này bên PHP thì sử dụng HTML DOM làm rất ok, nhưng đối với scrapy thì em chưa biết dùng như thế nào.

Mong các Pro chỉ giáo

Scrapy giống curl thôi, nó không phải là thư viện để xử lý HTML đâu.

Giờ công việc là bạn dùng Scrapy lấy về được file HTML có thể đọc được như một file HTML thường gặp đi đã rồi bàn tiếp nhé. Chứ hỏi cách lấy về thế nào không ai chỉ đâu, hãy đọc Tutorial của Scrapy sẽ có mà thôi. Tự viết code và tự chạy, báo lỗi thì đưa lên đây, không có ai viết giúp bạn đoạn nào ở đây, never.

Còn xử lý HTML dạng parse hay bóc tách gì đó, mời bạn nghiên cứu Beautiful Soup nhé. Và cũng nên nhớ, tự đọc tự làm, tự viết code, nó báo lỗi hay mắc mứu chỗ nào, đưa code lên đây mọi người phụ giúp, đừng có kiểu trông đợi ai đó viết giúp đoạn code làm giùm chỗ nào đó => mơ đi nhé.

Thanks bác,

Em đã code xong phần crawl dữ liệu về rồi ạ. Nhưng giờ ngoài việc chuyển sang php để edit dữ liệu em chưa biết làm cách nào để xử lý luôn dữ liệu khi import vào database.

Em hỏi chỉ là để xin cái keyword trong Scrapy mà nghiên cứu thôi ạ. :smiley: chứ không dám nhờ các bác viết hộ code cho em đâu :smiley:

Nếu bạn đã lấy được file HTML về, xem như xong phần Scrapy, và chúng ta không đề cập gì đến nó nữa. Còn bạn chưa làm được, hãy làm tiếp đi nhé, link Tutorial mình đã đưa rồi.

Khi lấy dữ liệu về mà nhiều thì phải ghi xuống file hoặc database sau đó mới đọc lên lại để xử lý. Cách tiếp cận theo kiểu đọc được file nào xử lý file đó cũng được, nhưng có vẻ không mang tính công nghiệp lắm, cũng không vấn đề gì nếu số lượng ít.

Ví dụ giờ bạn đã dùng Scrapy lấy được file .html về, lưu thành file đặt tên là abc.html đi nhé. Có thể đưa file đó lên đây xem thử.

Và bạn cài thư viện Súp Đẹp cho Python với lệnh: pip install beautifulsoup4

Rồi bắt đầu dùng Súp Đẹp để xử lý file abc.html của bạn: https://www.crummy.com/software/BeautifulSoup/bs4/doc/ , sau khi xử lý xong, nó sẽ nằm kết quả trong biến, bạn có thể save lại thành file hay lưu vào database là tuỳ ý.

Nếu dùng các thư viện thấy khó quá, hãy quay về với cách căn bản nhất: dùng Regular Expression.

2 Likes

Cảm ơn bác, Em đang đọc cái súp đẹp bác gửi.

Cũng cảm ơn bác vì gợi ý crawl xong rồi xử lý sau. Vì đúng là trong quá trình crawl chắc gì đã chạy ổn vì mỗi trang có 1 cấu trúc dữ liệu khác nhau.

Em sẽ nghiên cứu thêm về vấn đề này. Thanks bác :slight_smile:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?