Yêu cầu thg 11 24, 2021 1:22 CH 776 0 1
  • 776 0 1
0

Làm sao scrape những trang web động như Tiki và Lazada bằng scrapy-splash Python

Chia sẻ
  • 776 0 1

Hiện tại em đang làm một project nhỏ về Data Science có một bước là cần crawl data về.

Em đã tham khảo nhiều framework thì em quyết định chọn scrapysplash để thực hiện công việc này. Có một điều đó là, hiện tại em chưa có kiến thức về frontend cũng như JS để có thể tự thực hiện công việc một cách mượt mà nhất, nên khi tiến hành scrape trên Tiki em phát hiện ra nếu chỉ đơn giản dùng mỗi SplashRequest cho một trang ví dụ như f'https://tiki.vn/nha-sach-tiki/c8322?page={page_no}' thì cho dù page_no có giá trị bao nhiêu thì kết quả luôn giống hệt trang 'https://tiki.vn/nha-sach-tiki/c8322?page=1'. điều này cũng tương tự với Lazada (bên này em thấy còn không render cả tên sản phẩm cho).

Vậy các bác đi trước có thể cho em xin lời khuyên cũng như hướng đi được không ạ. Em xin chân thành cảm ơn ạ. Mọi đóng góp em đều tiếp thu ạ

1 CÂU TRẢ LỜI


Đã trả lời thg 11 24, 2021 1:28 CH
+1

Bạn có thể xem lại xem có code sai đoạn nào không, chứ lúc trước mình cũng từng crawl data tiki rồi, thì page_no khác --> kết quả khác mà

P/s: Source tham khảo khác (có thể bạn cũng đọc rồi): https://chidokun.github.io/2020/05/crawl-tiki-products/

Chia sẻ
Avatar Duy Hung @raisinbl
thg 11 24, 2021 2:16 CH

@tungbuitien dạ em chưa dùng lua script để render thêm nên cũng không rõ lắm ạ! không biết anh có thể thử lại bằng scrapy-splash không ạ.
Em để ý khi dùng scrapy shell để test: scrapy shell 'http://localhost:8050/render.html?url=https://tiki.vn/nha-sach-tiki/c8322?page=..&wait=..' thì thi thoảng lắm mới ra đúng được trang web còn không sẽ trả về trang đầu tiên như câu hỏi của em hoặc là hiện lên thông báo quay lại thời điểm khác kiểu này 🤣 image.png

Avatar Bui Tien Tung @tungbuitien
thg 11 24, 2021 4:05 CH

@raisinbl cái này bạn phải tự vọc code rồi, ngày trước mình chỉ dùng requests để lấy file html, xong dùng BeautifulSoup để lấy id cần thiết thôi, việc còn lại thì gọi API của tiki là có hết rồi

thg 11 27, 2021 4:58 CH

@tungbuitien thế claim voucher. Bạn đã thử chưa?

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí