Trang web điều khiển đang trở thành một trong những chủ đề nóng nhất trên thế giới, rất nhiều lợi ích của việc điều khiển trang web ví dụ như tự động hóa thao tác trên trang web (đăng nhập, tải dữ liệu, cập nhật dữ liệu…) . Show Đây là lý do tại sao các công ty nằm trong danh sách Fortune 500 như Walmart, CNN, Target và Amazon, google… sử dụng công cụ này để đi trước và tự động hóa việc thu thập dữ liệu Đó là công cụ tăng trưởng bước đầu và là một trong những bí mật được giữ kín nhất của họ … Và nó cũng có thể dễ dàng là của bạn Chào mừng bạn đến với trang web điều khiển bằng Python với BeautifulSoup và Selenium Khóa học này đang là xu hướng và mới nhất hiện có Trong khóa học này, bạn sẽ học cách thu thập dữ liệu và tự động hóa từ một số trang web nổi tiếng nhất, bao gồm
Khi kết thúc khóa học này, bạn có thể tự động hóa bất kỳ nhiệm vụ nào trên trang web bất kỳ bằng cách sử dụng ngôn ngữ lập trình python với các thư viện tôi hướng dẫn và hơn thế nữa Ngoài ra, hãy tự làm quen với một số kỹ thuật làm việc với trang web phổ biến nhất và trau dồi kỹ năng lập trình Python của bạn khi bạn đang học
Điều gì làm cho khóa học này khác với những khóa học khác, và tại sao bạn nên đăng ký ngay và luôn?
Vì vậy, cho dù bạn là dân văn phòng, thường xuyên phải làm việc với các trang web hay ứng dụng hay cũng có thể là một nhà phát triển web đang tìm cách tự động hóa các tác vụ hoặc một người yêu thích dữ liệu hay thích . Khóa học này cung cấp trình bày chuyên sâu về các khái niệm cơ bản về python cũng như cách chúng ta tự động hóa nó với ngôn ngữ lập trình python Trong một bài viết trước, tôi đã hướng dẫn bạn cách sử dụng Yêu cầu mô-đun để truy cập các trang web bằng Python. Hướng dẫn đó đã đề cập đến rất nhiều chủ đề như tạo các yêu cầu GET/POST và tải về các nội dung như hình ảnh hoặc tệp PDF bằng cách lập trình. Một điều còn thiếu trong hướng dẫn đó là về kỹ thuật cạo (trích xuất nội dung) trang web mà bạn đã truy cập bằng Yêu cầu trích xuất thông tin mà bạn cần Trong hướng dẫn này, bạn sẽ được khám phá về Beautiful Soup, một thư viện Python để trích xuất dữ liệu từ các tệp HTML. Trọng tâm của hướng dẫn này là nghiên cứu các kiến thức cơ bản của thư viện, và các chủ đề nâng cao sẽ được đề cập trong hướng dẫn tiếp theo. Xin lưu ý rằng hướng dẫn này sử dụng Beautiful Soup 4 cho tất cả các ví dụ Cài đặtBạn có thể cài đặt Beautiful Soup 4 bằng $ pip install beautifulsoup479. Tên gói là $ pip install beautifulsoup480. Nó sẽ làm việc trên cả Python 2 và Python 3 1 $ pip install beautifulsoup4 Nếu bạn chưa cài đặt pip trên hệ thống của mình, bạn có thể trực tiếp tải về nguồn tarball của Beautiful Soup 4 và cài đặt nó bằng $ pip install beautifulsoup481 1 $ python setup.py install BeautifulSoup ban đầu được đóng gói như là mã của Python 2. Khi bạn cài đặt nó để sử dụng với Python 3, nó sẽ tự động cập nhật mã của Python 3. Mã sẽ không được chuyển đổi trừ khi bạn cài đặt gói. Dưới đây là một số biến phổ biến lỗi mà bạn có thể bắt gặp
Cả hai lỗi trên đều có thể được giải quyết bằng cách gỡ cài đặt và cài đặt lại Beautiful Soup Cài đặt ParserTrước khi thảo luận về sự khác biệt giữa các trình phân tích cú pháp khác nhau mà bạn có thể sử dụng tương tự với Beautiful Soup, hãy viết mã để tạo ra một soup 1 from bs4 import BeautifulSoup 2 3 soup = BeautifulSoup("<html><p>This is <b>invalid HTML</p></html>", "html.parser") Đối tượng $ pip install beautifulsoup484 có thể nhận hai đối số. Đối số đầu tiên là đánh dấu sự thật, và đối số thứ hai là trình phân tích cú pháp mà bạn muốn sử dụng. Các trình phân tích cú pháp khác nhau là. $ pip install beautifulsoup485, lxml và html5lib. $ pip install beautifulsoup486 có hai phiên bản, trình phân tích cú pháp HTML và trình phân tích cú pháp XML $ pip install beautifulsoup485 là một trình phân tích cú pháp được tích hợp sẵn và nó không hoạt động tốt trong các phiên bản cũ của Python. Bạn có thể cài đặt các trình phân tích cú pháp khác nhau bằng các lệnh sau 1 $ pip install beautifulsoup40_______11_______ $ pip install beautifulsoup42 Trình phân tích cú pháp $ pip install beautifulsoup486 rất nhanh và có thể được sử dụng để nhanh chóng phân tích HTML. Mặt khác, trình phân tích cú pháp $ pip install beautifulsoup489 rất chậm, nhưng nó cũng cực kỳ dễ sử dụng. Dưới đây là một ví dụ về việc sử dụng từng trình phân tích cú pháp này 1 soup = BeautifulSoup("<html><p>This is <b>invalid HTML</p></html>", "html.parser") 2 $ pip install beautifulsoup46 3 $ pip install beautifulsoup48 $ pip install beautifulsoup49 10 11 12 $ pip install beautifulsoup46 14 15 16 17 18 19 $ pip install beautifulsoup46 $ python setup.py install1 $ python setup.py install2 $ python setup.py install3 $ pip install beautifulsoup48 $ python setup.py install5 $ python setup.py install6 $ python setup.py install7 $ python setup.py install8 $ pip install beautifulsoup46 10 11 Những sự khác biệt chỉ được đưa ra trong ví dụ trên chỉ có vấn đề khi bạn phân tích HTML không hợp lệ. Tuy nhiên, hầu hết HTML trên web không đúng định dạng, và nắm bắt được những khác biệt này sẽ giúp bạn loại bỏ một số phân tích lỗi và trình phân tích cú pháp quyết định mà bạn muốn sử dụng trong một dự án. Nói chung, trình phân tích cú pháp $ pip install beautifulsoup486 là một lựa chọn rất tốt Các đối tượng trong Beautiful SoupBeautiful Soup phân tích tài liệu HTML đã cho Python một cây các đối tượng. Có bốn đối tượng Python chính mà bạn cần biết. $ pip install beautifulsoup491, $ pip install beautifulsoup492, $ pip install beautifulsoup484 và $ pip install beautifulsoup494 Đối tượng $ pip install beautifulsoup491 chỉ về một thẻ XML hoặc HTML có thật trong tài liệu. Bạn có thể truy cập vào tên của thẻ bằng $ pip install beautifulsoup496. Bạn có thể đặt tên thành một cái gì đó khác. Thay đổi tên sẽ được hiển thị trong đánh dấu do Beautiful Soup tạo ra Bạn có thể truy cập các thuộc tính khác nhau như class và id của thẻ bằng $ pip install beautifulsoup497 và $ pip install beautifulsoup498 tương ứng. Bạn cũng có thể truy cập vào toàn bộ từ điển của các thuộc tính bằng cách sử dụng $ pip install beautifulsoup499. Bạn cũng có thể thêm, xóa hoặc sửa đổi các thuộc tính của thẻ. Các thuộc tính như 100 của một phần tử có thể lấy nhiều giá trị được lưu trữ dưới dạng một danh sách Văn bản bên trong một thẻ được lưu trữ như một $ pip install beautifulsoup492 trong Beautiful Soup. Nó có một vài phương thức hữu ích như 102 để thay thế văn bản trong một thẻ. Bạn cũng có thể chuyển đổi một $ pip install beautifulsoup492 thành unicode bằng cách sử dụng 104 Beautiful Soup cũng cho phép bạn truy cập các bình luận trong một trang web. Nhận xét này được lưu trữ dưới dạng một đối tượng $ pip install beautifulsoup494, về cơ bản cũng là $ pip install beautifulsoup492 Bạn đã học về các đối tượng $ pip install beautifulsoup484 trong phần trước. Nó được sử dụng để đại diện cho toàn bộ tài liệu. Vì nó không phải là một đối tượng thực tế, nên nó không có bất kỳ tên hoặc thuộc tính nào Get Title, Heading và LinkBạn có thể trích xuất tiêu đề trang và dữ liệu khác rất dễ dàng bằng Beautiful Soup. Vui lòng trích xuất trang Wikipedia về Python. Trước tiên, bạn phải lấy đánh dấu được đánh dấu của trang web bằng cách sử dụng mã sau đây dựa trên hướng dẫn về Yêu cầu mô-đun để truy xuất các trang web 1 13_______11_______ from bs4 import BeautifulSoup 3 $ pip install beautifulsoup49_______2_______8 10 from bs4 import BeautifulSoup0 Bây giờ bạn đã tạo súp, bạn có thể lấy tiêu đề của trang web bằng cách sử dụng mã sau 1 from bs4 import BeautifulSoup2 2 from bs4 import BeautifulSoup4 3___ $ pip install beautifulsoup49 from bs4 import BeautifulSoup7 10 from bs4 import BeautifulSoup9 12 14 22 16 24 Bạn có thể trích xuất các thông tin khác của trang web như tiêu đề hoặc đoạn văn đầu tiên, các lớp của chúng, hoặc thuộc tính 108 1 26 2 28 3 $ pip install beautifulsoup49 31 10 33 12 14 36 16 38 17 19 soup = BeautifulSoup("<html><p>This is <b>invalid HTML</p></html>", "html.parser")1 $ python setup.py install1 soup = BeautifulSoup("<html><p>This is <b>invalid HTML</p></html>", "html.parser")3 $ python setup.py install3 $ python setup.py install5 soup = BeautifulSoup("<html><p>This is <b>invalid HTML</p></html>", "html.parser")6 $ python setup.py install6 soup = BeautifulSoup("<html><p>This is <b>invalid HTML</p></html>", "html.parser")8 $ python setup.py install8 10 11 12 13 14 15 16 17 18 19 26 $ pip install beautifulsoup401 $ pip install beautifulsoup402 Tương tự như vậy, bạn có thể lặp qua tất cả các liên kết hoặc tiêu đề con trong một tài liệu bằng mã sau 1 $ pip install beautifulsoup404 2 $ pip install beautifulsoup406 3 $ pip install beautifulsoup408 $ pip install beautifulsoup49 $ pip install beautifulsoup410 Điều hướng trên DOMBạn có thể điều hướng trên cây DOM bằng tên thẻ thông thường. Việc móc nối các thẻ tên có thể giúp bạn điều hướng cây sâu hơn. Ví dụ, bạn có thể lấy liên kết đầu tiên trong đoạn đầu của trang Wikipedia cho trước bằng 109. Tất cả các liên kết trong đoạn văn đầu tiên đều có thể được truy cập bằng 110 Bạn cũng có thể truy xuất tất cả các lỗi của thẻ thành một danh sách sử dụng 111. To have been cons at a tool item only, you can use 112. Bạn cũng có thể bật qua các dấu hiệu của một thẻ bằng thuộc tính 113 Cả 113 và 115 chỉ hữu ích khi bạn muốn truy cập trực tiếp hoặc cấp đầu tiên của một thẻ. To have been all of cons, you can be used toác tính 116 1 $ pip install beautifulsoup412 2 $ pip install beautifulsoup414 3 $ pip install beautifulsoup49 $ pip install beautifulsoup417 10 $ pip install beautifulsoup419 12 14 $ pip install beautifulsoup422 16 $ pip install beautifulsoup424 17 $ pip install beautifulsoup426 19 $ pip install beautifulsoup428 $ python setup.py install1 $ pip install beautifulsoup430 $ python setup.py install3 $ pip install beautifulsoup428 $ python setup.py install5 $ pip install beautifulsoup430 $ python setup.py install6 $ pip install beautifulsoup428 $ python setup.py install8 $ pip install beautifulsoup438 Bạn cũng có thể truy cập vào phần tử cha của một phần tử bằng thuộc tính 117. Tương tự như vậy, bạn có thể truy cập vào tất cả các phần tử cha của một phần tử bằng cách sử dụng thuộc tính 118. Phần tử cha của thẻ cấp cao nhất 119 chính là đối tượng $ pip install beautifulsoup484, và cha của nó là Không có 1 $ pip install beautifulsoup440 2 $ pip install beautifulsoup442 3 $ pip install beautifulsoup49 $ pip install beautifulsoup445 10 $ pip install beautifulsoup447 12 $ pip install beautifulsoup442 14 $ pip install beautifulsoup442 16 $ pip install beautifulsoup442 17 $ pip install beautifulsoup455_______2_______9_______0_______57_______6_______1_______0_______ Bạn có thể truy cập phần tử của anh chị em trước và sau của một phần tử bằng các thuộc tính 121 và 122 Đối với hai phần tử để được là anh chị em, chúng nhất thiết phải có cùng một phần tử cha. Điều này có nghĩa là đầu tiên của một phần tử sẽ không có anh chị em trước. Tương tự, phần tử con cuối cùng của một phần tử sẽ không có anh chị em kế tiếp. Trong các trang web có thật, các anh chị em đi trước và tiếp theo của một phần tử có thể sẽ là một ký tự xuống dòng You can also it thông qua tất cả các anh chị em của một phần tử bằng 123 và 124 1 $ pip install beautifulsoup461_______11_______ $ pip install beautifulsoup463 3 $ pip install beautifulsoup49 $ pip install beautifulsoup466 10 $ pip install beautifulsoup468 12 14 $ pip install beautifulsoup471 16 $ pip install beautifulsoup473 17 19 $ pip install beautifulsoup476_______6_______1_______0_______78 Bạn có thể tìm thấy phần tử ngay sau phần tử hiện tại bằng thuộc tính 125. Để truy cập vào phần tử xuất hiện ngay trước phần tử hiện tại, hãy sử dụng thuộc tính 126 Tương tự như vậy, bạn có thể lặp lại tất cả các phần tử trước và sau phần tử hiện tại bằng cách sử dụng 127 và 128 tương ứng tóm tắtSau khi đọc xong hướng dẫn này, bạn đã hiểu rõ hơn về sự khác biệt chính giữa các trình phân tích cú pháp HTML khác nhau. Bây giờ bạn còn có thể điều hướng trên một trang web và trích xuất các dữ liệu quan trọng. Điều này có thể hữu ích khi bạn muốn phân tích tất cả các chủ đề hoặc liên kết trên một trang web nhất định Trong phần tiếp theo của loạt bài này, bạn sẽ được học cách sử dụng thư viện Beautiful Soup để tìm kiếm và sửa đổi DOM |