Chào mừng trở lại.
Vì vậy, chúng tôi vừa nhận được tất cả dữ liệu từ Hacker News.
Ít nhất là trên trang mà chúng tôi yêu cầu và chúng tôi thấy ở đây rằng chúng tôi đã nhận được tất cả thông tin HTML này, điều
này thật tuyệt.
Đây chỉ là một chuỗi mà chúng tôi nhận được.
Những gì món súp đẹp đẽ cho phép chúng ta làm là làm một thứ gọi là Phân tích.
Đó là, chúng ta có thể sử dụng canh đẹp để chuyển đổi từ một chuỗi thành một đối tượng thực tế mà chúng ta có thể thao tác
và sử dụng.
Sử dụng Python để sửa đổi dữ liệu này theo những gì chúng ta muốn.
Hãy để tôi chỉ cho bạn những gì tôi muốn nói.
Vì vậy, bây giờ chúng ta có thể sử dụng súp đẹp.
Tôi sẽ loại bỏ kết cấu và chúng ta có thể nói rằng món súp đẹp.
Và sau đó tại đây, tôi có thể cung cấp cho nó chuỗi mà chúng tôi muốn với tất cả dữ liệu là văn bản dấu chấm phản hồi như chúng ta đã
thấy, là chuỗi ở bên trái đây.
Và sau đó chúng tôi phân tích cú pháp nó, tức là chúng tôi nói với nó rằng, dữ liệu này cần được sửa đổi thành HTML mà chúng tôi thực
sự có thể sử dụng.
Vì vậy, cách chúng tôi làm điều đó với món súp đẹp là chúng tôi nói đơn giản là trình phân tích cú pháp dấu chấm HTML.
Và điều này nói với món súp tuyệt đẹp rằng, này, đây là HTML và tôi muốn bạn phân tích cú pháp nó.
Vì vậy, hãy chuyển đổi nó từ một chuỗi thành một cái gì đó mà chúng ta thực sự có thể sử dụng.
Và điều này tạo ra cái mà chúng ta gọi là đối tượng súp.
Vì vậy, tôi sẽ gán nó cho một biến súp, nhưng tôi có thể gọi nó bất cứ thứ gì tôi muốn.
Bây giờ, một số bạn có thể hỏi điều này thực sự là gì.
Và lý do mà chúng ta phải làm điều này là món súp xinh đẹp cũng phân tích cú pháp dữ liệu khác có tên là XML.
Và một lần nữa, nếu chúng ta truy cập trang web tài liệu, chúng ta hãy đến tài liệu súp tuyệt đẹp và
hãy chỉ tìm kiếm trình phân tích cú pháp chấm HTML.
Bạn thấy ở đây rằng chúng ta có thể có các trình phân tích cú pháp khác nhau, chẳng hạn như trình phân tích cú pháp HTML được tích hợp sẵn, nhưng
cũng có trình phân tích cú pháp XML và các trình phân tích cú pháp khác mà chúng ta có thể cài đặt.
Vì vậy, một lần nữa, bất cứ khi nào bạn có câu hỏi, hãy luôn tham khảo tài liệu và chỉ cần kiểm soát F và
bạn sẽ tìm thấy bất kỳ thông tin bổ sung nào bạn cần.
99% thời gian bạn chỉ sử dụng trình phân tích cú pháp HTML làm mặc định.
Nhưng điều đó có nghĩa gì?
Điều này đã làm gì cho chúng tôi?
Vâng, chúng ta hãy xem xét.
Nếu tôi in ở đây đối tượng súp mà chúng ta vừa tạo và chúng ta hãy đi xuống đây và hãy xóa nó ngay
bây giờ và chạy lại mã python của chúng ta.
Cóp nhặt bởi.
Được rồi.
Chúng ta thấy ở đây là chúng ta có đối tượng súp.
Nó thực sự sạch hơn một chút.
Nó không còn là một chuỗi nữa.
Bạn thấy ở đây rằng nó ở dạng HTML đầy đủ.
Chúng tôi có tiêu đề, chúng tôi có đầu, chúng tôi có thẻ nội dung.
Vì vậy, chúng tôi thực sự có thể thao tác điều này như thể nó.
Chà, một đối tượng trăn.
Vì vậy, ví dụ, tôi có thể làm súp chấm phần thân để chỉ lấy phần thân.
Vì vậy, nếu tôi lưu và tôi chạy lại tập lệnh.
Của bạn đây.
Hiện chúng tôi mới nhận xác.
Hãy để tôi làm rõ điều này để chúng ta có thể nhìn thấy nó.
Tôi sẽ chạy nó một lần nữa.
Bạn thấy điều đó?
Bây giờ chúng ta chỉ có cơ thể.
Tôi thậm chí có thể làm một cái gì đó như nội dung dấu chấm.
Và nếu tôi chạy nó, hãy xóa nó một lần nữa.
Tôi nhận được toàn bộ nội dung nhưng bạn thấy ở đây dưới dạng danh sách.
Đáng kinh ngạc.
Bây giờ sử dụng đối tượng súp này, chúng ta có thể làm một số việc thực sự gọn gàng.
Ví dụ, giả sử tôi muốn tìm.
Sử dụng phương thức find all, tất cả các div mà chúng ta có trong đối tượng súp này.
Vì vậy, nếu tôi lưu, hãy xóa điều này và chạy tập lệnh của chúng tôi.
Làm thế nào là mát đó là?
Chúng tôi lấy tất cả các đối tượng nhà phát triển trong một danh sách chứa trên trang đó.
Điều gì về tất cả các liên kết?
Có lẽ chúng tôi muốn lấy tất cả các thẻ.
Đó là những liên kết của trang web.
Vâng, một lần nữa, chúng ta hãy xóa điều này ngay bây giờ và chạy tập lệnh của chúng tôi.
Và nhìn vào đó.
Chúng tôi có tất cả các cuộc tấn công.
Đó là tất cả các liên kết trên trang.
Và bạn có thể tưởng tượng có những cách sử dụng khác nhau mà chúng ta có thể làm ở đây.
Chúng tôi có thể nói tiêu đề nếu tôi chạy tiêu đề ở đây.
Chúng tôi nhận được thẻ tiêu đề của đối tượng súp của chúng tôi.
Nếu tôi làm điều gì đó giống như ở đây, đó là thẻ và tôi chạy lại tập lệnh.
Tôi sẽ nhận đòn tấn công đầu tiên.
Một cái khác mà chúng ta có thể làm là một cái gì đó được gọi là tìm.
Vì vậy, thay vì tìm tất cả, hãy tìm cái giếng, điều đầu tiên.
Vì vậy, một lần nữa, nếu tôi tìm thấy một và tôi nhấp vào chạy ở đây, bạn sẽ thấy rằng tôi nhận được điều tương tự.
Nó tìm thấy mục đầu tiên.
Bây giờ, tại sao điều này lại hữu ích?
Bởi vì nếu chúng tôi truy cập trang web Tin tặc của chúng tôi và điều tôi muốn làm là hãy truy cập liên kết đầu tiên ở đây,
nhấp chuột phải vào nó và sau đó kiểm tra.
Điều này mang lại hiệu quả tốt cho chúng tôi, đối tượng dom HTML này cung cấp cho chúng tôi tất cả thông tin trên trang.
Đúng.
Vì vậy, nhìn vào điều này, tôi biết điều đó chắc chắn.
Tôi sẽ muốn cái này một thẻ.
Điều đó có liên kết và tiêu đề.
Nhưng tôi cũng có thể sẽ muốn phiếu bầu.
Đúng.
Vì vậy, nếu tôi tiếp tục đi xuống đây.
Đến phần này.
Bạn thấy đây, ngay đây là điểm số.
Và tôi có lẽ cũng sẽ quan tâm đến việc điều này có bao nhiêu điểm.
Ví dụ, tôi có thể sử dụng thuộc tính ID ở đây, vì vậy hãy sao chép điểm số này.
Tôi thậm chí có thể làm điều gì đó như tìm và cung cấp cho nó một ID bằng giá trị này.
Nếu bây giờ tôi xóa tất cả và chạy tệp.
Bạn thấy điều đó?
Tôi nhận được thẻ chính xác đó với ý tưởng về điểm số này.
Vì vậy, bằng cách cho phép chúng tôi lấy các yếu tố khác nhau này trên khắp trang, chúng tôi có thể chọn dữ liệu mình muốn một cách
có chọn lọc.
Hãy cùng nghỉ ngơi tại đây và tìm hiểu thêm trong video tiếp theo.