Hãy để tôi hỏi bạn điều này.
Nếu bạn là chủ sở hữu trang web.
Bạn có muốn mọi người xem xét trang web của bạn không?
Bạn có muốn mọi người truy cập vào dữ liệu của bạn, có thể là Airbnb của bạn và bạn đã làm việc rất chăm chỉ để liệt kê những sản
phẩm này.
Thông tin khác nhau ở đây.
Có công bằng không khi bất kỳ ai cũng có thể đến và lấy thông tin này và có thể tạo một bản sao trang web của bạn?
Chà, không hẳn vậy.
Đúng.
Ý tôi là, nó phụ thuộc.
Hầu hết thời gian, bạn không thực sự muốn mọi người cạo trang web của bạn.
Mặc dù HTML và dữ liệu của một trang web đều có sẵn cho tất cả chúng ta, nhưng đó chỉ là cách internet của chúng ta hoạt động để mọi
người có thể xem các trang web khác nhau.
Hầu hết các trang web không thực sự muốn bạn thu thập dữ liệu của họ.
Bây giờ thực sự có một cách mà các trang web cho bạn biết những gì bạn có thể và không thể loại bỏ.
Nó được gọi là Robots Dot Text.
Chúng tôi chỉ nói ở cuối dấu gạch chéo URL.
Robot chấm txt.
Nếu tôi nhấp vào nhập.
Nhìn kìa.
Airbnb có một con rô bốt. txt.
Rô bốt. txt chỉ đơn giản nói hey, nếu bạn là rô bốt, nếu bạn là người quét mạng hoặc nhện.
Đây là lý do tại sao bạn được phép và không được phép làm.
Nó có nghĩa là họ sẽ ngăn cản chúng tôi nếu chúng tôi vi phạm các quy tắc?
Không, họ thực sự không thể ngăn cản chúng ta.
Nhưng đây là một vùng xám nơi bạn muốn có đạo đức ở đây và chỉ thu thập dữ liệu mà một trang web cho phép
bạn.
Vì vậy, nếu chúng ta nhìn vào robot. txt, bạn thấy ở đây Airbnb đã tạo một tệp thuế cho chúng tôi biết những gì
bạn có thể và không thể loại bỏ.
Ví dụ: chúng tôi xem xét tác nhân người dùng ở đây cho biết Googlebot Airbnb đang nói, Này Googlebot, bạn được phép thu
thập thông tin này, nhưng chúng tôi không cho phép bạn chỉnh sửa tài khoản lịch của cựu sinh viên và bạn thấy rằng có
rất nhiều những thứ không được phép.
Còn về bot tìm kiếm Bing?
Chà, Bing, bạn được phép làm điều này, nhưng bạn không thể.
Loại bỏ bất kỳ dữ liệu nào trong số này.
Chúng tôi có Yandex.
Chúng ta còn gì nữa?
Chúng tôi có Baidu Spider.
Và sau đó chúng tôi cũng có Starr Tác nhân Người dùng.
Điều đó có nghĩa là bất kỳ ai khác, bất kỳ ai khác?
Bạn được phép thu thập thông tin này, nhưng không có thông tin nào trong số này.
Được rồi, chúng ta hãy chuyển sang một cái khác.
Hãy đến với Udemy Dotcom.
Ở đây, chúng tôi thấy rằng bất kỳ ai mà chúng tôi không muốn bạn tìm kiếm hoặc thu thập thông tin bất kỳ thông tin nào trong số
này, nhưng chúng tôi cho phép bạn truy cập thông tin này.
API 2. 0, tất nhiên, các thành phần cho vay.
Được rồi, vậy là quá tệ.
Có vẻ như Udemy không thực sự cho phép chúng tôi làm bất cứ điều gì khác ngoài API 2 này. 0 điều mà chúng ta sẽ quay
lại.
Điều gì về Hacker News?
Chúng tôi sẽ xây dựng một dự án xung quanh Hacker News.
Vì vậy, hãy xem liệu Hacker News có cho phép chúng tôi loại bỏ nó hay không.
Được rồi.
Vì vậy, danh sách này nhỏ hơn một chút.
Chúng tôi thấy điều đó cho tất cả người dùng.
Chúng tôi không được phép sử dụng các điểm cuối này.
Vì vậy, nó nói rằng miễn là bạn không sử dụng những URL này, những URL này, chúng tôi sẵn sàng sử dụng.
Đó là, nếu chúng tôi chỉ muốn loại bỏ trang chủ.
Đó là ngay tại đây.
Tốt rồi.
Nếu chúng tôi đang cố gắng, hãy nói, hãy chuyển đến nhận xét.
Điều đó cũng tốt, vì cái này không có trong văn bản rô bốt.
Một lần nữa, nếu bạn nhớ, nếu chúng ta chuyển sang văn bản rô bốt.
Tốt rồi.
Điều duy nhất mà họ yêu cầu là chúng tôi có độ trễ thu thập thông tin là 30.
Có nghĩa là, nếu chúng ta sẽ thu thập dữ liệu trang web của họ, chúng ta nên tạm dừng để không liên tục sử dụng các
chương trình để truy cập trang web bởi vì điều này sẽ làm quá tải máy chủ của họ và có thể làm chậm trang
web của họ.
Vậy chúng ta vừa học gì?
Chúng tôi biết rằng có những cách cạo các trang web có đạo đức và phi đạo đức.
Có, bạn có thể cạo bất kỳ trang web nào bạn muốn.
Và trên thực tế, có các plug in chrome.
Nếu bạn cắm Google Chrome vào Trình duyệt web, bạn có thể sử dụng rất nhiều trình duyệt web cho
phép bạn quét các trang web mà thậm chí không cần viết một dòng mã nào.
Thực hành lập trình có đạo đức là một điều tốt, và điều đó có nghĩa là kiểm tra các điều khoản và điều kiện của trang web trước khi
bạn quét nó, kiểm tra các rô bốt. txt để xem những gì bạn có thể và không thể cạo.
Bởi vì thông thường dữ liệu bạn thu thập từ một trang web không nên được sử dụng cho mục đích thương
mại bởi vì bạn đang sử dụng công việc khó khăn của người khác để kiếm tiền.
Và đây là lý do tại sao khi chúng tôi đến Hacker News và yêu cầu thời gian trì hoãn tàn nhẫn là 30 giây.
Đúng.
Nếu bạn đang yêu cầu dữ liệu từ một trang web để tích cực vào chương trình của mình, thì đó về cơ bản là gửi
thư rác vì điều này có thể phá vỡ Tin tức của Hacker.
Bây giờ, trước khi chúng ta tìm hiểu về web, tôi muốn lưu ý một điều khác, đó là ý tưởng về
một API.
Nếu bạn còn nhớ khi chúng tôi truy cập Udemy Robots. txt, họ đã nói với chúng tôi rằng có một số khu vực được phép mà chúng tôi có
thể cạo hoặc điểm cuối mà chúng tôi có thể sử dụng.
Bạn thấy một số trang web thực sự cho phép bạn truy cập dữ liệu.
Ví dụ: Udemy cung cấp cho chúng tôi một API người hướng dẫn.
Nghĩa là, nếu bạn là người hướng dẫn trên Udemy, bạn thực sự có thể sử dụng API của họ.
Bạn có thể xem ngay tại đây để có thể lấy các dữ liệu khác nhau.
Có thể bạn có thể nhận được danh sách đánh giá khóa học, có thể là danh sách câu hỏi về khóa học.
Nhưng nếu tôi đến đây và nhập mã này vào URL của mình, tôi sẽ nhận được mã thông báo bị thiếu không hợp lệ.
Đó là bởi vì ngay bây giờ tôi không phải là một người hướng dẫn, hoặc ít nhất là tôi chưa xác minh rằng tôi là một người hướng dẫn.
Trên Udemy, nó sẽ nói, Này, dữ liệu này chỉ dành cho những người hướng dẫn hợp lệ, vì vậy tôi cần chuyển nó một mã thông báo
để chứng minh rằng tôi là một người hướng dẫn trên Udemy.
Và rất nhiều trang web cung cấp cho bạn cái mà chúng tôi gọi là API hoặc quyền truy cập giao diện lập trình ứng dụng.
Trong một biểu mẫu như thế này được gọi là JSON, cung cấp cho bạn dữ liệu bạn cần và một số trang web chỉ cho phép bạn
làm điều này nếu bạn là người dùng hợp lệ.
Ví dụ: một trong những API phổ biến nhất là API GitHub này, nơi bạn có thể truy cập thông tin khác nhau
từ GitHub.
Nhưng để chúng tôi sử dụng nó, chúng tôi phải tạo một tài khoản người dùng và xác thực để chúng tôi
là chính mình.
Nhưng sau đó cũng có các trang web như API Chiến tranh giữa các vì sao cung cấp cho chúng tôi quyền truy cập miễn phí.
Đó là, bất kỳ ai cũng có thể sử dụng nó.
Chúng tôi không cần xác minh rằng chúng tôi là người dùng.
Chúng tôi không phải cung cấp mã thông báo khi đưa ra yêu cầu.
Thay vào đó, chúng tôi chỉ có thể yêu cầu dữ liệu.
Vì vậy, ví dụ: nếu tôi thực hiện API hoán đổi và nhập mọi người và tôi nhấn enter.
Nhìn kìa.
Tôi nhận được tất cả dữ liệu này miễn phí để tốt hơn, tôi có thể tạo một ứng dụng xoay quanh Chiến tranh giữa các vì sao, đó là
điều rất hạnh phúc.
Nó là viết tắt của API Chiến tranh giữa các vì sao và chúng tôi có thể lấy tất cả thông tin này mà chúng tôi muốn.
Chúng tôi cũng có những thứ như trình giữ chỗ JSON, mà tôi thực sự thích sử dụng khi xây dựng các dự
án đơn giản, nơi chúng tôi có thể lấy thông tin khác nhau như ảnh.
Bạn có thể thấy đây là một API cung cấp thông tin cho chúng ta.
Với các bức ảnh khác nhau mà chúng tôi có thể sử dụng.
Có thể chúng tôi có các bài viết khác nhau mà chúng tôi có thể sử dụng.
Và một lần nữa, chúng tôi gọi đây là định dạng JSON, không phải là HTML, mà chỉ là một phiên bản dữ liệu đã được làm sạch để
mọi người có thể sử dụng nó.
Cách dễ nhất để lấy dữ liệu từ một trang web thường là sử dụng API.
Đôi khi các trang web cho phép chúng tôi truy cập nó một cách dễ dàng hoặc chúng có thể có một API, nhưng nó chỉ bị hạn chế đối với một số
người dùng nhất định.
Có lẽ bạn phải đăng ký với dịch vụ của họ.
Có thể bạn phải trả phí cho API của họ.
Vâng, trong trường hợp đó chúng tôi có cái này.
Nhưng sau đó cũng có web cạo, có thể một trang web không cung cấp cho bạn quyền truy cập vào một API.
Có lẽ bạn muốn chỉ có thông tin đó.
Ví dụ: Hacker News không cung cấp API theo như tôi biết.
Vì vậy, thay vào đó, chúng tôi có thể chỉ muốn quét HTML, tất cả các trang web và xem những gì chúng tôi có thể sử dụng.
Vậy làm cách nào chúng ta có thể xử lý một trang web bằng Python?
Hãy cùng tìm hiểu trong video tiếp theo.