Python yêu cầu danh sách các URL
Trong bài viết này, tôi sẽ chỉ cho bạn ba cách để cạo dữ liệu từ nhiều URL. Cụ thể hơn, tôi sẽ trình bày cách lặp qua số trang, lặp qua danh sách URL được tạo thủ công và cuối cùng, lặp qua danh sách URL đã loại bỏ Tôi giả định rằng trong hướng dẫn này, bạn đã có một số kiến thức siêu cơ bản về quét web. Nếu bạn cần xem lại nhanh về cách kiểm tra và cạo một trang web, hãy xem phần này Hướng dẫn về những gì Kaggle sẽ không dạy cho bạn. Quét web, làm sạch dữ liệu và hơn thế nữaBởi vì Khoa học dữ liệu không chỉ là EDA và các mô hình đào tạohướng tới khoa học dữ liệu. com Tôi sẽ thu thập dữ liệu từ các ký túc xá ở thành phố Barcelona xinh đẹp từ Hostelworld, trang web tốt nhất để tìm ký túc xá ở bất kỳ đâu trên thế giới. Được rồi, bây giờ chúng ta hãy bắt đầu Vòng qua số trang Đây là cách đơn giản nhất, đơn giản nhất để cạo nhiều trang. Hãy bắt đầu bằng cách xem phần cuối của URL mà chúng tôi đang tìm kiếm các ký túc xá (URL đầy đủ có sẵn ở cuối bài viết) Chúng tôi thấy rằng đối với trang đầu tiên, chúng tôi có page=1. Đối với trang thứ hai, chúng tôi sẽ có trang = 2, v.v. Do đó, tất cả những gì chúng ta cần làm là tạo một vòng lặp “for” trong đó chúng ta thay đổi số cuối cùng. Đối với mỗi trang, vòng lặp sẽ thu thập thông tin chúng tôi đã chỉ định Đây là mã để thu thập khoảng cách từ trung tâm thành phố, giá giường tập thể, giá phòng riêng và xếp hạng trung bình do khách hàng trước đưa ra cho tất cả các nhà trọ được tìm thấy trong 2 trang đầu tiên của trang web
Thông thường, chúng tôi sẽ chuyển sang làm sạch dữ liệu để làm cho dữ liệu có thể sử dụng được, nhưng tôi sẽ làm điều này ở phần cuối cùng với phương pháp cuối cùng. Hãy chuyển sang phương pháp tiếp theo Lặp lại danh sách URL được tạo thủ công Điều đó thật tuyệt, nhưng nếu các URL khác nhau mà bạn muốn thu thập không có số trang mà bạn có thể duyệt qua thì sao? Chà, cách đầu tiên để thực hiện việc này là tạo danh sách URL theo cách thủ công và lặp qua danh sách đó. Đây là mã để tạo danh sách URL cho hai ký túc xá đầu tiên url = ['https://www.hostelworld.com/pwa/hosteldetails.php/Casa-Gracia-Barcelona-Hostel/Barcelona/45620?from=2020-07-03&to=2020-07-05&guests=1' , Sau đó, bạn có thể tạo một vòng lặp “for” mới đi qua mọi thành phần của danh sách và thu thập thông tin bạn muốn, theo cách chính xác như được minh họa trong phương pháp đầu tiên Điều đó hiệu quả nếu bạn chỉ có một vài URL, nhưng hãy tưởng tượng nếu bạn có 100, 1.000 hoặc thậm chí 10.000 URL. Chắc chắn, việc tạo một danh sách theo cách thủ công không phải là điều bạn muốn làm (trừ khi bạn có quá nhiều thời gian rảnh rỗi) Rất may, có một cách tốt hơn/thông minh hơn để làm mọi việc Lặp lại danh sách các URL đã được loại bỏ Đây là phương pháp cuối cùng được đề cập trong hướng dẫn này. Hãy xem kỹ trang Hostelworld mà chúng tôi đang tìm kiếm Chúng tôi thấy rằng mọi danh sách ký túc xá đều có thuộc tính href, chỉ định liên kết đến trang ký túc xá riêng lẻ. Đó là thông tin chúng tôi muốn Phương pháp diễn ra như sau
Điều quan trọng là phải chỉ ra rằng nếu mỗi trang được cạo có cấu trúc khác nhau thì phương pháp này sẽ không hoạt động bình thường. Các URL cần đến từ cùng một trang web Đối với mỗi trang ký túc xá, tôi tìm kiếm tên của ký túc xá, giá giường rẻ nhất, số lượng đánh giá và điểm đánh giá cho 8 hạng mục (địa điểm, bầu không khí, an ninh, sạch sẽ, v.v.). ) Điều này làm cho phương pháp đầu tiên mà chúng tôi thấy trở nên vô dụng, vì với phương pháp này, chúng tôi có thể nhận được tất cả thông tin giống nhau và hơn thế nữa Đây là mã để có được danh sách sạch các URL
Bây giờ chúng tôi có danh sách các URL sạch, chúng tôi có thể thu thập tất cả thông tin chúng tôi muốn trên mỗi trang ký túc xá bằng cách lặp qua danh sách Vì mỗi lần lặp mất khoảng 15–20 giây nên mình sẽ chỉ làm cho 10 ký túc xá đầu tiên tại đây. Bạn có thể dễ dàng thay đổi điều đó bằng cách sửa đổi phạm vi
Loại vòng lặp này là một cách tuyệt vời để xử lý các lỗi tiềm ẩn Với tất cả dữ liệu được thu thập, đây là mã để làm sạch dữ liệu và đưa dữ liệu vào khung dữ liệu Đây là phần đầu của khung dữ liệu cuối cùng Bạn đã có nó, ba cách khác nhau để tìm kiếm trên nhiều trang/URL. Tôi thực sự hy vọng điều này có ích và đừng quên cạo một cách có trách nhiệm |