Làm cách nào để sử dụng Selenium với Python?

Trong hướng dẫn này, bạn sẽ học các kỹ thuật tự động hóa web Python nâng cao. sử dụng Selenium với trình duyệt “không đầu”, xuất dữ liệu đã cạo sang tệp CSV và bọc mã cạo của bạn trong một lớp Python

Động lực. Theo dõi thói quen nghe

Giả sử bạn đã nghe nhạc trên bandcamp được một thời gian và bạn ước mình có thể nhớ một bài hát mà bạn đã nghe cách đây vài tháng.

Chắc chắn, bạn có thể tìm hiểu lịch sử trình duyệt của mình và kiểm tra từng bài hát, nhưng điều đó có thể hơi khó khăn… Tất cả những gì bạn nhớ là bạn đã nghe bài hát cách đây vài tháng và nó thuộc thể loại điện tử

“Sẽ không tuyệt sao,” bạn tự nghĩ, “nếu tôi có một bản ghi lịch sử nghe của mình? . ”

Hôm nay, bạn sẽ xây dựng một lớp Python cơ bản, được gọi là

$ pip install selenium
7 kết nối với bandcamp. com, truyền phát nhạc từ phần “khám phá” trên trang nhất và theo dõi lịch sử nghe của bạn

Lịch sử nghe sẽ được lưu vào đĩa dưới dạng tệp CSV. Sau đó, bạn có thể khám phá tệp CSV đó trong ứng dụng bảng tính yêu thích của mình hoặc thậm chí với Python

Nếu bạn đã có một số kinh nghiệm với việc quét web bằng Python, thì bạn đã quen với việc tạo các yêu cầu HTTP và sử dụng API Pythonic để điều hướng DOM. Hôm nay bạn sẽ làm nhiều hơn như vậy, ngoại trừ một điểm khác biệt

Hôm nay, bạn sẽ sử dụng trình duyệt chính thức chạy ở chế độ không đầu để thực hiện các yêu cầu HTTP cho bạn

Trình duyệt không đầu chỉ là một trình duyệt web thông thường, ngoại trừ việc nó không chứa phần tử giao diện người dùng hiển thị. Đúng như bạn mong đợi, nó có thể làm được nhiều việc hơn ngoài việc đưa ra yêu cầu. nó cũng có thể hiển thị HTML [mặc dù bạn không thể nhìn thấy nó], lưu giữ thông tin phiên và thậm chí thực hiện giao tiếp mạng không đồng bộ bằng cách chạy mã JavaScript

Nếu bạn muốn tự động hóa web hiện đại, trình duyệt không đầu là điều cần thiết

Tiền thưởng miễn phí. mà bạn có thể sử dụng làm nền tảng cho các ứng dụng tự động hóa và quét web Python của riêng mình

Loại bỏ các quảng cáo

Cài đặt

Bước đầu tiên của bạn, trước khi viết một dòng Python, là cài đặt Selenium được hỗ trợ cho trình duyệt web yêu thích của bạn. Trong phần tiếp theo, bạn sẽ làm việc với Firefox, nhưng Chrome cũng có thể dễ dàng làm việc

Giả sử rằng đường dẫn

$ pip install selenium
8 đang được thực thi bởi bạn là
$ pip install selenium
9, đây là cách bạn sẽ cài đặt Firefox WebDriver, được gọi là
>>> from selenium.webdriver import Firefox
>>> from selenium.webdriver.firefox.options import Options
>>> opts = Options[]
>>> opts.set_headless[]
>>> assert opts.headless  # Operating in headless mode
>>> browser = Firefox[options=opts]
>>> browser.get['//duckduckgo.com']
0, trên máy Linux

$ wget //github.com/mozilla/geckodriver/releases/download/v0.19.1/geckodriver-v0.19.1-linux64.tar.gz
$ tar xvfz geckodriver-v0.19.1-linux64.tar.gz
$ mv geckodriver ~/.local/bin

Tiếp theo, bạn cài đặt gói Selenium, sử dụng

>>> from selenium.webdriver import Firefox
>>> from selenium.webdriver.firefox.options import Options
>>> opts = Options[]
>>> opts.set_headless[]
>>> assert opts.headless  # Operating in headless mode
>>> browser = Firefox[options=opts]
>>> browser.get['//duckduckgo.com']
1 hoặc bất cứ thứ gì bạn thích. Nếu bạn đã tạo một môi trường ảo cho dự án này, bạn chỉ cần gõ

$ pip install selenium

Ghi chú. Nếu bạn cảm thấy lạc lõng trong suốt quá trình hướng dẫn này, bạn có thể tìm thấy bản demo mã đầy đủ trên GitHub

Bây giờ là lúc lái thử

Lái thử trình duyệt không đầu

Để kiểm tra xem mọi thứ có hoạt động không, bạn quyết định thử tìm kiếm trên web cơ bản qua DuckDuckGo. Bạn kích hoạt trình thông dịch Python ưa thích của mình và nhập nội dung sau

>>>

>>> from selenium.webdriver import Firefox
>>> from selenium.webdriver.firefox.options import Options
>>> opts = Options[]
>>> opts.set_headless[]
>>> assert opts.headless  # Operating in headless mode
>>> browser = Firefox[options=opts]
>>> browser.get['//duckduckgo.com']

Cho đến giờ, bạn đã tạo một trình duyệt Firefox không đầu và điều hướng đến

>>> from selenium.webdriver import Firefox
>>> from selenium.webdriver.firefox.options import Options
>>> opts = Options[]
>>> opts.set_headless[]
>>> assert opts.headless  # Operating in headless mode
>>> browser = Firefox[options=opts]
>>> browser.get['//duckduckgo.com']
2. Bạn đã tạo một phiên bản
>>> from selenium.webdriver import Firefox
>>> from selenium.webdriver.firefox.options import Options
>>> opts = Options[]
>>> opts.set_headless[]
>>> assert opts.headless  # Operating in headless mode
>>> browser = Firefox[options=opts]
>>> browser.get['//duckduckgo.com']
3 và sử dụng nó để kích hoạt chế độ không đầu khi bạn chuyển nó cho hàm tạo
>>> from selenium.webdriver import Firefox
>>> from selenium.webdriver.firefox.options import Options
>>> opts = Options[]
>>> opts.set_headless[]
>>> assert opts.headless  # Operating in headless mode
>>> browser = Firefox[options=opts]
>>> browser.get['//duckduckgo.com']
4. Điều này giống như gõ
>>> from selenium.webdriver import Firefox
>>> from selenium.webdriver.firefox.options import Options
>>> opts = Options[]
>>> opts.set_headless[]
>>> assert opts.headless  # Operating in headless mode
>>> browser = Firefox[options=opts]
>>> browser.get['//duckduckgo.com']
5 tại dòng lệnh

Bây giờ một trang đã được tải, bạn có thể truy vấn DOM bằng cách sử dụng các phương thức được xác định trên đối tượng

>>> from selenium.webdriver import Firefox
>>> from selenium.webdriver.firefox.options import Options
>>> opts = Options[]
>>> opts.set_headless[]
>>> assert opts.headless  # Operating in headless mode
>>> browser = Firefox[options=opts]
>>> browser.get['//duckduckgo.com']
6 mới tạo của bạn. Nhưng làm thế nào để bạn biết những gì để truy vấn?

Cách tốt nhất là mở trình duyệt web của bạn và sử dụng các công cụ dành cho nhà phát triển để kiểm tra nội dung của trang. Ngay bây giờ, bạn muốn có được biểu mẫu tìm kiếm để bạn có thể gửi truy vấn. Bằng cách kiểm tra trang chủ của DuckDuckGo, bạn thấy rằng phần tử biểu mẫu tìm kiếm

>>> from selenium.webdriver import Firefox
>>> from selenium.webdriver.firefox.options import Options
>>> opts = Options[]
>>> opts.set_headless[]
>>> assert opts.headless  # Operating in headless mode
>>> browser = Firefox[options=opts]
>>> browser.get['//duckduckgo.com']
7 có thuộc tính
>>> from selenium.webdriver import Firefox
>>> from selenium.webdriver.firefox.options import Options
>>> opts = Options[]
>>> opts.set_headless[]
>>> assert opts.headless  # Operating in headless mode
>>> browser = Firefox[options=opts]
>>> browser.get['//duckduckgo.com']
8
>>> from selenium.webdriver import Firefox
>>> from selenium.webdriver.firefox.options import Options
>>> opts = Options[]
>>> opts.set_headless[]
>>> assert opts.headless  # Operating in headless mode
>>> browser = Firefox[options=opts]
>>> browser.get['//duckduckgo.com']
9. Đó chỉ là những gì bạn cần

>>>

>>> search_form = browser.find_element_by_id['search_form_input_homepage']
>>> search_form.send_keys['real python']
>>> search_form.submit[]

Bạn đã tìm thấy biểu mẫu tìm kiếm, sử dụng phương pháp

>>> search_form = browser.find_element_by_id['search_form_input_homepage']
>>> search_form.send_keys['real python']
>>> search_form.submit[]
0 để điền vào và sau đó sử dụng phương pháp
>>> search_form = browser.find_element_by_id['search_form_input_homepage']
>>> search_form.send_keys['real python']
>>> search_form.submit[]
1 để thực hiện tìm kiếm của bạn cho
>>> search_form = browser.find_element_by_id['search_form_input_homepage']
>>> search_form.send_keys['real python']
>>> search_form.submit[]
2. Bạn có thể kiểm tra kết quả hàng đầu

>>>

>>> results = browser.find_elements_by_class_name['result']
>>> print[results[0].text]

Real Python - Real Python
Get Real Python and get your hands dirty quickly so you spend more time making real applications. Real Python teaches Python and web development from the ground up ...
//realpython.com

Mọi thứ dường như đang hoạt động. Để ngăn các phiên bản trình duyệt không đầu vô hình chồng chất trên máy của bạn, bạn đóng đối tượng trình duyệt trước khi thoát phiên Python của mình

>>>

>>> browser.close[]
>>> quit[]

Loại bỏ các quảng cáo

Groovin' trên Giai điệu

Bạn đã thử nghiệm rằng bạn có thể điều khiển trình duyệt không đầu bằng Python. Bây giờ bạn có thể đưa nó vào sử dụng

  1. Bạn muốn chơi nhạc
  2. Bạn muốn duyệt và khám phá âm nhạc
  3. Bạn muốn biết thông tin về bản nhạc đang phát

Để bắt đầu, bạn điều hướng đến https. //nhóm cắm trại. com và bắt đầu khám phá các công cụ dành cho nhà phát triển của trình duyệt của bạn. Bạn phát hiện ra một nút phát lớn sáng bóng ở cuối màn hình với thuộc tính

>>> search_form = browser.find_element_by_id['search_form_input_homepage']
>>> search_form.send_keys['real python']
>>> search_form.submit[]
3 chứa giá trị
>>> search_form = browser.find_element_by_id['search_form_input_homepage']
>>> search_form.send_keys['real python']
>>> search_form.submit[]
4. Bạn kiểm tra xem nó có hoạt động không

>>>

>>> opts = Option[]
>>> opts.set_headless[]
>>> browser = Firefox[options=opts]
>>> browser.get['//bandcamp.com']
>>> browser.find_element_by_class['playbutton'].click[]

Bạn nên nghe nhạc. Để nó phát và quay lại trình duyệt web của bạn. Ngay bên cạnh nút phát là phần khám phá. Một lần nữa, bạn kiểm tra phần này và thấy rằng mỗi bản nhạc có sẵn hiện đang hiển thị có giá trị

>>> search_form = browser.find_element_by_id['search_form_input_homepage']
>>> search_form.send_keys['real python']
>>> search_form.submit[]
3 là
>>> search_form = browser.find_element_by_id['search_form_input_homepage']
>>> search_form.send_keys['real python']
>>> search_form.submit[]
6 và mỗi mục dường như có thể nhấp được. Trong Python, bạn kiểm tra cái này

>>>

>>> tracks = browser.find_elements_by_class_name['discover-item']
>>> len[tracks]  # 8
>>> tracks[3].click[]

Một bản nhạc mới sẽ được phát. Đây là bước đầu tiên để khám phá bandcamp bằng Python. Bạn dành vài phút để nhấp vào nhiều bản nhạc khác nhau trong môi trường Python của mình nhưng sẽ sớm cảm thấy mệt mỏi với thư viện tám bài hát ít ỏi

Khám phá danh mục

Nhìn lại trình duyệt của mình, bạn sẽ thấy các nút để khám phá tất cả các bản nhạc có trong phần khám phá âm nhạc của bandcamp. Đến bây giờ, điều này cảm thấy quen thuộc. mỗi nút có giá trị

>>> search_form = browser.find_element_by_id['search_form_input_homepage']
>>> search_form.send_keys['real python']
>>> search_form.submit[]
3 là
>>> search_form = browser.find_element_by_id['search_form_input_homepage']
>>> search_form.send_keys['real python']
>>> search_form.submit[]
8. Nút cuối cùng là nút “tiếp theo” sẽ hiển thị tám bản nhạc tiếp theo trong danh mục. Bạn đi làm

>>>

>>> next_button = [e for e in browser.find_elements_by_class_name['item-page']
                   if e.text.lower[].find['next'] > -1]
>>> next_button.click[]

Tuyệt vời. Bây giờ bạn muốn xem các bản nhạc mới, vì vậy bạn nghĩ, “Tôi sẽ chỉ điền lại biến

>>> search_form = browser.find_element_by_id['search_form_input_homepage']
>>> search_form.send_keys['real python']
>>> search_form.submit[]
9 của mình như cách tôi đã làm vài phút trước. ” Nhưng đây là lúc mọi thứ bắt đầu trở nên rắc rối

Đầu tiên, bandcamp thiết kế trang web của họ để mọi người thích sử dụng, không phải để các tập lệnh Python truy cập theo chương trình. Khi bạn gọi

>>> results = browser.find_elements_by_class_name['result']
>>> print[results[0].text]

Real Python - Real Python
Get Real Python and get your hands dirty quickly so you spend more time making real applications. Real Python teaches Python and web development from the ground up ...
//realpython.com
0, trình duyệt web thực sẽ phản hồi bằng cách thực thi một số mã JavaScript

Nếu bạn dùng thử trong trình duyệt của mình, bạn sẽ thấy rằng một thời gian trôi qua khi danh mục các bài hát cuộn với hiệu ứng hoạt hình mượt mà. Nếu bạn cố gắng điền lại biến

>>> search_form = browser.find_element_by_id['search_form_input_homepage']
>>> search_form.send_keys['real python']
>>> search_form.submit[]
9 của mình trước khi hoạt ảnh kết thúc, bạn có thể không nhận được tất cả các bản nhạc và bạn có thể nhận được một số bản nhạc mà bạn không muốn

Giải pháp là gì? . Rốt cuộc, bạn cũng cần có thời gian để gõ

Một nút thắt nhỏ khác là thứ chỉ có thể được khám phá thông qua thử nghiệm. Bạn cố gắng chạy lại cùng một mã

>>>

>>> tracks = browser.find_elements_by_class_name['discover-item']
>>> assert[len[tracks] == 8]
AssertionError
...

Nhưng bạn nhận thấy một cái gì đó kỳ lạ.

>>> results = browser.find_elements_by_class_name['result']
>>> print[results[0].text]

Real Python - Real Python
Get Real Python and get your hands dirty quickly so you spend more time making real applications. Real Python teaches Python and web development from the ground up ...
//realpython.com
2 không bằng với
>>> results = browser.find_elements_by_class_name['result']
>>> print[results[0].text]

Real Python - Real Python
Get Real Python and get your hands dirty quickly so you spend more time making real applications. Real Python teaches Python and web development from the ground up ...
//realpython.com
3 mặc dù chỉ hiển thị lô tiếp theo của
>>> results = browser.find_elements_by_class_name['result']
>>> print[results[0].text]

Real Python - Real Python
Get Real Python and get your hands dirty quickly so you spend more time making real applications. Real Python teaches Python and web development from the ground up ...
//realpython.com
3. Tìm hiểu kỹ hơn một chút, bạn thấy rằng danh sách của mình chứa một số bản nhạc đã được hiển thị trước đó. Để chỉ nhận các bản nhạc thực sự hiển thị trong trình duyệt, bạn cần lọc kết quả một chút

Sau khi thử một vài điều, bạn quyết định chỉ giữ một bản nhạc nếu tọa độ

>>> results = browser.find_elements_by_class_name['result']
>>> print[results[0].text]

Real Python - Real Python
Get Real Python and get your hands dirty quickly so you spend more time making real applications. Real Python teaches Python and web development from the ground up ...
//realpython.com
5 của nó trên trang nằm trong hộp giới hạn của phần tử chứa. Vùng chứa của danh mục có giá trị
>>> search_form = browser.find_element_by_id['search_form_input_homepage']
>>> search_form.send_keys['real python']
>>> search_form.submit[]
3 là
>>> results = browser.find_elements_by_class_name['result']
>>> print[results[0].text]

Real Python - Real Python
Get Real Python and get your hands dirty quickly so you spend more time making real applications. Real Python teaches Python and web development from the ground up ...
//realpython.com
7. Đây là cách bạn tiến hành

>>>

$ pip install selenium
0

Loại bỏ các quảng cáo

xây dựng một lớp học

Nếu bạn cảm thấy mệt mỏi với việc gõ đi gõ lại cùng một lệnh trong môi trường Python của mình, bạn nên đưa một số lệnh đó vào một mô-đun. Một lớp cơ bản cho thao tác bandcamp của bạn nên làm như sau

  1. Khởi tạo trình duyệt không đầu và điều hướng đến bandcamp
  2. Giữ một danh sách các bản nhạc có sẵn
  3. Hỗ trợ tìm thêm bài hát
  4. Phát, tạm dừng và bỏ qua các bản nhạc

Đây là mã cơ bản, tất cả trong một lần

$ pip install selenium
1

khá gọn gàng. Bạn có thể nhập cái này vào môi trường Python của mình và chạy bandcamp theo chương trình. Nhưng chờ đã, không phải bạn bắt đầu toàn bộ điều này vì bạn muốn theo dõi thông tin về lịch sử nghe của mình sao?

Thu thập dữ liệu có cấu trúc

Nhiệm vụ cuối cùng của bạn là theo dõi các bài hát mà bạn đã thực sự nghe. Làm thế nào bạn có thể làm điều này? . Bạn sẽ dành thời gian 'khám phá' để tính đến việc thu thập dữ liệu của mình

Mục tiêu của bạn bây giờ là

  1. Thu thập thông tin có cấu trúc về bản nhạc hiện đang phát
  2. Giữ một “cơ sở dữ liệu” các bản nhạc
  3. Lưu và khôi phục “cơ sở dữ liệu” đó vào và từ đĩa

Bạn quyết định sử dụng một bộ có tên để lưu trữ thông tin mà bạn theo dõi. Các bộ dữ liệu được đặt tên phù hợp để biểu diễn các gói thuộc tính không có chức năng gắn với chúng, giống như một bản ghi cơ sở dữ liệu

$ pip install selenium
2

Để thu thập thông tin này, bạn thêm một phương thức vào lớp

$ pip install selenium
7. Kiểm tra lại bằng các công cụ dành cho nhà phát triển của trình duyệt, bạn sẽ tìm thấy các phần tử và thuộc tính HTML phù hợp để chọn tất cả thông tin bạn cần. Ngoài ra, bạn chỉ muốn nhận thông tin về bản nhạc hiện đang phát nếu có nhạc thực sự đang phát vào thời điểm đó. May mắn thay, trình phát trang thêm một lớp
>>> results = browser.find_elements_by_class_name['result']
>>> print[results[0].text]

Real Python - Real Python
Get Real Python and get your hands dirty quickly so you spend more time making real applications. Real Python teaches Python and web development from the ground up ...
//realpython.com
9 vào nút phát bất cứ khi nào nhạc đang phát và loại bỏ nó khi nhạc dừng

Với những cân nhắc này trong tâm trí, bạn viết một vài phương pháp

$ pip install selenium
3

Để có biện pháp tốt, bạn cũng sửa đổi phương pháp

>>> browser.close[]
>>> quit[]
0 để theo dõi bản nhạc hiện đang phát

$ pip install selenium
4

Tiếp theo, bạn phải giữ một số loại cơ sở dữ liệu. Mặc dù nó có thể không mở rộng tốt trong thời gian dài, nhưng bạn có thể tiến xa với một danh sách đơn giản. Bạn thêm phương pháp

>>> browser.close[]
>>> quit[]
1 vào phương pháp
>>> browser.close[]
>>> quit[]
3 của
>>> browser.close[]
>>> quit[]
2. Vì bạn muốn để thời gian trôi qua trước khi nhập một đối tượng
>>> browser.close[]
>>> quit[]
4 vào cơ sở dữ liệu, nên bạn quyết định sử dụng Python để chạy một quy trình riêng duy trì cơ sở dữ liệu ở chế độ nền

Bạn sẽ cung cấp một phương thức

>>> browser.close[]
>>> quit[]
5 cho các phiên bản
$ pip install selenium
7 sẽ chạy trong một chuỗi riêng biệt. Phương pháp mới sẽ kiểm tra định kỳ giá trị của
>>> browser.close[]
>>> quit[]
7 và thêm nó vào cơ sở dữ liệu nếu nó là mới

Bạn sẽ bắt đầu chủ đề khi lớp được khởi tạo bằng cách thêm một số mã vào

>>> browser.close[]
>>> quit[]
3

$ pip install selenium
5

Nếu bạn chưa bao giờ làm việc với lập trình đa luồng trong Python, bạn nên đọc nó. Đối với mục đích hiện tại của bạn, bạn có thể coi luồng như một vòng lặp chạy trong nền của quy trình Python chính [quy trình mà bạn tương tác trực tiếp]. Cứ sau hai mươi giây, vòng lặp sẽ kiểm tra một số thứ để xem cơ sở dữ liệu có cần được cập nhật hay không và nếu có, hãy thêm một bản ghi mới. Tuyệt đấy

Bước cuối cùng là lưu cơ sở dữ liệu và khôi phục từ trạng thái đã lưu. Sử dụng gói csv, bạn có thể đảm bảo cơ sở dữ liệu của mình nằm ở định dạng có tính di động cao và vẫn có thể sử dụng được ngay cả khi bạn từ bỏ lớp

$ pip install selenium
7 tuyệt vời của mình

Phương pháp

>>> browser.close[]
>>> quit[]
3 sẽ được thay đổi một lần nữa, lần này để chấp nhận đường dẫn tệp mà bạn muốn lưu cơ sở dữ liệu. Bạn muốn tải cơ sở dữ liệu này nếu nó có sẵn, và bạn muốn lưu nó định kỳ, bất cứ khi nào nó được cập nhật. Các bản cập nhật trông như thế này

$ pip install selenium
6

thì đấy. Bạn có thể nghe nhạc và ghi lại những gì bạn nghe được. Kinh ngạc

Một điều thú vị về điều trên là việc sử dụng

>>> opts = Option[]
>>> opts.set_headless[]
>>> browser = Firefox[options=opts]
>>> browser.get['//bandcamp.com']
>>> browser.find_element_by_class['playbutton'].click[]
1 thực sự bắt đầu mang lại hiệu quả. Khi chuyển đổi sang và từ định dạng CSV, bạn tận dụng thứ tự của các hàng trong tệp CSV để điền vào các hàng trong đối tượng
>>> browser.close[]
>>> quit[]
4. Tương tự như vậy, bạn có thể tạo hàng tiêu đề của tệp CSV bằng cách tham khảo thuộc tính
>>> opts = Option[]
>>> opts.set_headless[]
>>> browser = Firefox[options=opts]
>>> browser.get['//bandcamp.com']
>>> browser.find_element_by_class['playbutton'].click[]
3. Đây là một trong những lý do tại sao việc sử dụng bộ dữ liệu cuối cùng lại có ý nghĩa đối với dữ liệu dạng cột

Loại bỏ các quảng cáo

Điều gì tiếp theo và bạn đã học được gì?

Bạn có thể làm nhiều hơn nữa. Dưới đây là một vài ý tưởng nhanh sẽ tận dụng siêu năng lực nhẹ đó là Python + Selenium

  • Bạn có thể mở rộng lớp
    $ pip install selenium
    
    7 để điều hướng đến các trang album và phát các bản nhạc bạn tìm thấy ở đó
  • Bạn có thể quyết định tạo danh sách phát dựa trên các bản nhạc yêu thích hoặc được nghe thường xuyên nhất của mình
  • Có lẽ bạn muốn thêm tính năng tự động phát
  • Có thể bạn muốn truy vấn các bài hát theo ngày hoặc tiêu đề hoặc nghệ sĩ và tạo danh sách phát theo cách đó

Tiền thưởng miễn phí. mà bạn có thể sử dụng làm nền tảng cho các ứng dụng tự động hóa và quét web Python của riêng mình

Bạn đã học được rằng Python có thể làm mọi thứ mà trình duyệt web có thể làm và hơn thế nữa. Bạn có thể dễ dàng viết các tập lệnh để kiểm soát các phiên bản trình duyệt ảo chạy trên đám mây. Bạn có thể tạo các bot tương tác với người dùng thực hoặc điền vào các biểu mẫu mà không cần suy nghĩ. Đi ra ngoài và tự động hóa

Đánh dấu là đã hoàn thành

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Gửi cho tôi thủ thuật Python »

Giới thiệu về Colin OKeefe

Colin là một Nhà sáng tạo phần mềm tự do, người đã du hành vũ trụ unix trên con tàu tốt Python

» Thông tin thêm về Colin

Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Aldren

Đan

Joanna

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Chuyên gia Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi

Selenium hoạt động như thế nào trong Python?

Selenium hỗ trợ Python và do đó có thể được sử dụng làm Selenium WebDriver với Python để thử nghiệm. Python dễ so với các ngôn ngữ lập trình khác, ít dài dòng hơn nhiều. API Python cho phép bạn kết nối với trình duyệt thông qua Selenium .

Tôi có thể học Selenium với Python không?

Selenium Client Library giúp WebDriver hoạt động với nhiều ngôn ngữ lập trình. Nghĩa là, nếu chúng ta viết các tập lệnh tự động hóa bằng Python, chúng ta sẽ cần các liên kết Selenium Python

Làm cách nào để sử dụng Selenium trong Python để quét web?

Lọc web bằng Selenium và Python .
Cài đặt
Bắt đầu nhanh. Chế độ không đầu của Chrome. Thuộc tính trang WebDriver
yếu tố định vị. Các phương thức find_element. Phần tử Web Selenium. .
Chụp ảnh màn hình
Chờ đợi một yếu tố có mặt
Thực thi JavaScript
Sử dụng proxy với Selenium Wire
Chặn hình ảnh và JavaScript

Chủ Đề