Python có thể được sử dụng để tạo các trang web động

Bình luận. Bìa sạch nhưng có một số vết mòn. Các trang hiển thị hao mòn bình thường. Chúng tôi giao hàng từ thứ Hai đến thứ Bảy và có sẵn dịch vụ Nhanh - Vận chuyển & gửi thư bong bóng an toàn và bảo mật được thực hiện sau khi thanh toán

Mã truy cập và bổ sung không được đảm bảo với các mặt hàng đã qua sử dụng

Trong nhiều năm qua, các phương pháp và công nghệ thiết kế front-end cho các trang web đã phát triển vượt bậc và các framework như React, Angular, Vue, v.v. đã trở nên cực kỳ phổ biến. Các khung này cho phép các nhà phát triển trang web mặt trước hoạt động hiệu quả và mang lại nhiều lợi ích trong việc tạo trang web và các trang web họ phục vụ, có thể sử dụng nhiều hơn và hấp dẫn hơn cho người dùng trang web. Các trang web được tạo động có thể mang lại trải nghiệm người dùng nhanh hơn; . Điều này trái ngược với phương pháp tạo trang dựa trên máy chủ truyền thống hơn, trong đó dữ liệu và các thành phần trên trang được đặt một lần và yêu cầu một chuyến đi khứ hồi đầy đủ đến máy chủ web để lấy phần dữ liệu tiếp theo phục vụ cho người dùng. Khi chúng tôi quét các trang web, cách dễ thực hiện nhất là những trang dựa trên máy chủ, đơn giản, truyền thống hơn. Đây là những dự đoán nhất quán và nhất quán

Mặc dù các trang web Động mang lại lợi ích to lớn cho người dùng cuối và nhà phát triển, nhưng chúng có thể gặp sự cố khi chúng tôi muốn lấy dữ liệu từ chúng. Ví dụ: hãy xem xét rằng trong một trang web động. phần lớn chức năng xảy ra để đáp ứng với hành động của người dùng và việc thực thi mã JavaScript trong ngữ cảnh của trình duyệt. Dữ liệu được tạo tự động hoặc xuất hiện 'theo yêu cầu' và được 'tạo tự động' do tương tác của người dùng với trang có thể khó sao chép theo chương trình ở mức độ thấp – xét cho cùng, trình duyệt là một phần mềm khá phức tạp

Do mức độ tương tác động và tự động hóa giao diện này, rất khó để sử dụng một tác nhân http đơn giản để làm việc với tính chất động của các trang web này và chúng tôi cần một cách tiếp cận khác. Giải pháp đơn giản nhất để cạo dữ liệu từ các trang web động là sử dụng trình duyệt web tự động, chẳng hạn như Selenium, được điều khiển bởi ngôn ngữ lập trình như Python. Trong hướng dẫn này, chúng ta sẽ khám phá một ví dụ về cách thiết lập và sử dụng Selenium với Python để trích xuất các trang web động và một số tính năng sử dụng có sẵn cho chúng tôi mà không dễ dàng đạt được bằng các phương pháp trích xuất truyền thống hơn

Yêu cầu

Đối với hướng dẫn này, chúng tôi sẽ sử dụng thư viện ‘Selenium’ để NHẬN và PHÂN TÍCH dữ liệu

điều kiện tiên quyết

  • Trăn 3. 4 hoặc cao hơn
  • selen 3. 14 hoặc cao hơn

Nói chung, khi bạn đã cài đặt đúng Python 3, bạn có thể tải xuống Selenium bằng tiện ích 'PIP'

1pip install -U selenium 

Bạn cũng sẽ cần cài đặt trình điều khiển cho gói Selenium, Chrome hoạt động tốt cho việc này. Cài đặt nó cũng bằng cách sử dụng trình bao bọc pip cài đặt chromedriver

1pip install chromedriver-install

Nếu chưa cài đặt Pip, bạn có thể tải về và cài đặt tại đây

Để quét web đơn giản, trình chỉnh sửa tương tác như Microsoft Visual Code (miễn phí sử dụng và tải xuống) là một lựa chọn tuyệt vời và nó hoạt động trên Windows, Linux và Mac

Bắt đầu sử dụng Selenium

Sau khi chạy cài đặt pip, chúng ta có thể bắt đầu viết một số mã. Một trong những khối mã ban đầu kiểm tra xem Chromedriver đã được cài đặt chưa và nếu chưa, hãy tải xuống mọi thứ cần thiết. Tôi muốn chỉ định thư mục mà chrome hoạt động vì vậy tôi chuyển thư mục tải xuống và cài đặt làm đối số cho thư viện cài đặt

1import chromedriver_install as cdi
2path = cdi.install(file_directory='c:\\data\\chromedriver\\', verbose=True, chmod=True, overwrite=False, version=None)
3print('Installed chromedriver to path: %s' % path)

con trăn

Sau đó, phần chính của mã được gọi – điều này tạo ra phiên bản Chromedriver, trỏ điểm bắt đầu tới thư mục mà tôi đã cài đặt nó vào

1from selenium import webdriver
2from selenium.webdriver.common.keys import Keys
3
4driver = webdriver.Chrome("c:\\data\\chromedriver\\chromedriver.exe")

con trăn

Sau khi dòng này thực thi, một phiên bản Chrome sẽ xuất hiện trên màn hình nền – chúng tôi có thể ẩn phiên bản này, nhưng với mục đích thử nghiệm ban đầu của chúng tôi, thật tốt khi xem điều gì đang xảy ra. Chúng tôi hướng trình điều khiển mở một trang web bằng cách gọi phương thức 'get', với tham số của trang chúng tôi muốn truy cập

1driver.get("http://www.python.org")

Python có thể được sử dụng để tạo các trang web động

Sức mạnh của Selenium là nó cho phép trình điều khiển chrome thực hiện công việc nặng nhọc trong khi nó hoạt động như một người dùng ảo, tương tác với trang web và gửi các lệnh của bạn theo yêu cầu. Để minh họa điều này, hãy chạy tìm kiếm trên trang web Python bằng cách thêm một số văn bản vào hộp tìm kiếm. Trước tiên, chúng tôi tìm kiếm phần tử có tên là 'q' – đây là “hộp nhập liệu” được sử dụng để gửi tìm kiếm đến trang web. Chúng tôi xóa nó, sau đó gửi chuỗi bàn phím 'pycon'

1elem = driver.find_element_by_name("q")
2elem.clear()
3elem.send_keys("pycon")

con trăn

Python có thể được sử dụng để tạo các trang web động

Sau đó, chúng tôi hầu như có thể nhấn 'nhập/quay lại' bằng cách gửi 'các lần gõ phím' đến hộp nhập liệu - trang web sẽ gửi và kết quả tìm kiếm được hiển thị cho chúng tôi

1elem.send_keys(Keys.RETURN)

con trăn

Python có thể được sử dụng để tạo các trang web động

Điều hướng các trang web bằng Selenium

Chúng ta đã thấy việc thiết lập và chạy với Selenium đơn giản như thế nào, tiếp theo chúng ta sẽ xem xét cách điều hướng xung quanh một trang web và thực sự là một trang web đầy đủ bằng cách sử dụng các lệnh điều hướng. Là con người, khi chúng tôi muốn thực hiện một tác vụ trên trang web, chúng tôi xác định những gì chúng tôi muốn thực hiện trực quan, chẳng hạn như kéo và thả, cuộn, nhấp vào nút, v.v. Sau đó, chúng tôi di chuyển chuột và nhấp hoặc sử dụng bàn phím, cho phù hợp. Mọi thứ không đơn giản như vậy (chưa. ) với Selenium, vì vậy chúng tôi cần hỗ trợ một chút cho nó. Để điều hướng xung quanh một trang web, chúng ta cần cho Selenium biết những đối tượng nào trên trang sẽ tương tác với. Chúng tôi thực hiện điều này bằng cách xác định các phần tử trang bằng XPath và sau đó gọi các chức năng phù hợp với tác vụ mà chúng tôi muốn thực hiện

Trong trường hợp ví dụ đầu tiên của chúng tôi, hộp tìm kiếm, chúng tôi đã làm như sau

  • Đã giao nhiệm vụ cho trình điều khiển tìm một phần tử trình duyệt có tên 'q'
  • Đã đưa ra hướng dẫn gửi một chuỗi ký tự đến phần tử được xác định
  • Đã đưa ra hướng dẫn gửi lệnh quan trọng cho 'RETURN'

Điều này tương đương với chúng ta là con người, nhấp vào hộp tìm kiếm, nhập cụm từ tìm kiếm và nhấn RETURN hoặc ENTER trên bàn phím của chúng ta

Do đó, mô hình điều hướng trong Selenium là

  • Xác định yếu tố bạn muốn tương tác
  • Tương tác theo yêu cầu (đặt một số văn bản, trích xuất giá trị, gửi tổ hợp phím, v.v. )

Các phần tử có thể được định vị bằng xPath ‘trình điều khiển. find_element_by_xpath' hoặc các phương thức cấp cao hơn như 'find_element_by_id'

1<input type="text" name="searchbox" id="someUniqueId" />
2
3element = driver.find_element_by_id("someUniqueId")
4element = driver.find_element_by_name("searchbox")
5element = driver.find_element_by_xpath("//input[@id='someUniqueId']")

con trăn

Có thể gửi hướng dẫn tương tác, chẳng hạn như cài đặt văn bản, chọn hộp radio và nhấn 'RETURN' (trên bàn phím) bằng phương pháp 'sendkeys'

________số 8

con trăn

Ngoài việc gửi văn bản, chúng tôi cũng có thể gửi tổ hợp phím, riêng lẻ hoặc kết hợp với văn bản

1element.send_keys(Keys.RETURN)
2element.send_keys("Set text", Keys.ARROW_DOWN)

con trăn

Làm việc với Biểu mẫu

Làm việc với các biểu mẫu trong Selenium rất đơn giản và kết hợp những gì chúng ta đã học được với một số chức năng bổ sung. Việc điền vào biểu mẫu trên trang web thường liên quan đến việc đặt giá trị của hộp văn bản, có thể chọn tùy chọn từ hộp thả xuống hoặc điều khiển radio và nhấp vào nút gửi. Chúng ta đã thấy cách xác định và gửi dữ liệu vào trường văn bản. Định vị và chọn một điều khiển tùy chọn yêu cầu chúng tôi phải

  • Xác định vị trí điều khiển
  • Lặp lại thông qua các tùy chọn của nó
  • Đặt tùy chọn mà chúng tôi muốn chọn giá trị 'đã chọn'

Trong ví dụ sau, chúng tôi đang tìm kiếm một điều khiển được chọn cho giá trị 'Ms'và khi chúng tôi tìm thấy nó, chúng tôi sẽ nhấp vào nó để chọn nó

1pip install chromedriver-install
0

con trăn

Phần cuối cùng khi làm việc với biểu mẫu là biết cách gửi dữ liệu trong biểu mẫu trở lại máy chủ. Điều này đạt được bằng cách định vị nút gửi và gửi sự kiện nhấp hoặc chọn bất kỳ điều khiển nào trong biểu mẫu và gọi 'gửi' đối với điều đó

1pip install chromedriver-install
1

con trăn

Mỉm cười. … Chụp ảnh màn hình

Một trong những lợi ích của việc sử dụng Selenium là bạn có thể chụp ảnh màn hình những gì trình duyệt đã hiển thị. Điều này có thể hữu ích để gỡ lỗi sự cố và cũng để lưu giữ bản ghi về trang web trông như thế nào khi nó được loại bỏ

Chụp ảnh màn hình không thể dễ dàng hơn. Chúng tôi gọi phương thức 'save_screenshot' và chuyển vào một vị trí và tên tệp để lưu hình ảnh

1pip install chromedriver-install
2

con trăn

Phần kết luận

Các trang web quét bằng Selenium có thể là một công cụ rất hữu ích trong túi thủ thuật của bạn, đặc biệt là khi đối mặt với các trang web động. Hướng dẫn này mới chỉ sơ bộ – để tìm hiểu thêm, vui lòng truy cập trang web Selenium

Nếu bạn muốn tìm hiểu thêm về quét web, vui lòng xem xét các khóa học sau mà Pluralsight cung cấp

Python có thể được sử dụng để tạo các trang web động không?

Trong khóa học này, bạn sẽ tạo một ứng dụng Python trong đó bạn sẽ tạo một máy chủ HTTP đơn giản, tạo một trang web tĩnh, tạo các trang động bằng python, and access the pages from the server using the command line as well as from a browser.

Ngôn ngữ nào được sử dụng cho các trang web động?

Việc giới thiệu JavaScript (khi đó được gọi là LiveScript) đã cho phép sản xuất các trang web động phía máy khách, với mã JavaScript được thực thi trong .

Chúng tôi có thể tạo trang web động bằng Django không?

Giống như mọi khung web, Django có một công cụ tạo khuôn mẫu để tạo HTML động . Thông tin mà người dùng muốn truy cập được tạo bởi công cụ này và được trình bày thông qua các chế độ xem.

Cái nào không được sử dụng để tạo các trang web động?

Cái nào sau đây không được sử dụng để tạo các trang web động? . Không thể sử dụng CSS một mình để tạo các trang web động vì nó không cung cấp nhiều chức năng xử lý sự kiện. Nó có thể được sử dụng cùng với JavaScript để tạo các trang web động hấp dẫn về mặt hình ảnh.