Python selen Chromium
Tôi đã dành một ngày để tìm giải pháp để Selenium hoạt động trên Raspberry Pi. Hy vọng rằng, điều này cũng sẽ phù hợp với bạn và giúp bạn tiết kiệm hàng giờ tìm kiếm trên internet Show Selenium yêu cầu phải cài đặt trình duyệt được điều khiển bởi trình điều khiển. Là trình duyệt, tôi sử dụng Chromium có thể tải xuống bằng lệnh này sudo apt-get install chromium-browser Bây giờ bạn đã cài đặt trình duyệt Chromium, bạn cần tìm phiên bản bạn đang chạy chromium-browser --version Nó sẽ trả lại một cái gì đó tương tự như thế này Chromium 78.0.3904.108 Built on Raspbian, running on Raspbian 10 Sau khi bạn biết mình đã cài đặt phiên bản Chromium nào, bạn phải tìm chromedriver hỗ trợ cùng phiên bản với Chromium mà bạn có. Chuẩn bị cho một vài thử nghiệm và lỗi vì bây giờ bạn phải mở https. //github. com/electron/electron/tags và xem qua các bản phát hành khác nhau để tìm chromedriver trong nội dung. Họ sử dụng chromedriver cho dự án của họ, họ cập nhật thường xuyên và bạn có thể tìm thấy ở đó hầu hết mọi phiên bản của nó Tải xuống phiên bản armv7l và kiểm tra xem phiên bản chromedriver có khớp với phiên bản Chromium không và nếu không hãy thử một phiên bản khác chromedriver --version Để tải trực tiếp xuống Raspberry Pi, hãy sử dụng lệnh này sudo wget https://github.com/electron/electron/releases/download/v9.0.2/chromedriver-v9.0.2-linux-armv7l.zip Để giải nén, bạn có thể sử dụng sudo apt-get install unzipunzip chromedriver-v9.0.2-linux-armv7l.zip Đừng quên di chuyển chromedriver sang /usr/lib/chromium-browser/. Sau đó, mọi thứ được thiết lập và nó sẽ hoạt động. Nếu không thì có lẽ bạn cần thiết lập tuyến đường đến chromedriver trong Selenium driver = webdriver.Chrome(‘/usr/lib/chromium-browser/chromedriver’) Nếu bạn đang sử dụng Raspberry Pi mà không có màn hình, vui lòng đọc thêm Raspberry Pi không đầu?Một vấn đề khác mà tôi gặp phải là Chromium yêu cầu màn hình chạy nếu không nó sẽ trả về lỗi. Đây là cách khắc phục Tôi chọn XML vì định dạng phẳng này dễ lấy bằng Python và nó có thể được tạo từ tệp Excel bằng Access chẳng hạn. Ngoài ra, nếu tính năng tự động gửi gặp sự cố trong quá trình thực thi (có thể xảy ra ngay cả với mã tốt, tùy thuộc vào trang web cung cấp biểu mẫu), Chromium sẽ dừng ở bản ghi cuối cùng và bạn có thể xóa phần đầu của XML trước đó để thực hiện lại Đối với những người đang vội (🧐) mã của tôi ở đây trên GitHub. Nhưng để hiểu đầy đủ, chỉ cần xem bên dưới
Trước tiên, bạn nên tải xuống và giải nén trình điều khiển Chrome theo phiên bản trình duyệt của bạn OK, bây giờ hãy thử điền vào một bản ghi được mã hóa cứng
ở dòng 6, 7 và 8, tôi cung cấp 3 ví dụ để lấy thông tin đầu vào từ id, tên hoặc lớp CSS (tìm các thẻ CSS của riêng bạn với F12) Dòng 14 gửi biểu mẫu. Là nút, hãy sử dụng 2 để quản lý các hộp kiểm OK, nó hoạt động. Bây giờ chúng ta hãy gửi loại dữ liệu này ________số 8_______Chỉ cần kiểm tra xem bạn có thể lặp qua XML không import requests import xml.etree.ElementTree r = requests.get('C:/Path/To/Your/XML/MyFile.xml') root = xml.etree.ElementTree.fromstring(r.content) for people in root.findall('poi'): my_firstname = people.find('FirstName').text my_lastname = people.find('LastName').text print(my_firstname, my_lastname) Bây giờ, chỉ cần thêm mã Selenium của bạn vào vòng lặp, với hàm 3 từ 4 from selenium import webdriver import xml.etree.ElementTree as ET chrome_path = 'C:/Path/To/chromedriver.exe' browser = webdriver.Chrome(chrome_path) tree = ET.parse('C:/Path/To/Your/XML/MyFile.xml') root = tree.getroot() for people in root.findall('poi'): xml_FirstName =people.find('FirstName').text xml_LastName = people.find('LastName').text xml_Email =people.find('Email').text browser.get('https://www.example.com/path/to/the/form.html') firstname = browser.find_element_by_id('input_id_firstName') lastname = browser.find_element_by_name('input_name_lastname') email = browser.find_elements_by_class_name('input_class_email') firstname.send_keys(xml_FirstName) lastname.send_keys(xml_LastName) email.send_keys(xml_Email) browser.find_element_by_id('submit_id').click() quản lý cookieĐôi khi bạn nên quản lý cookie, đây là một ví dụ (dòng 17)
quản lý thả xuốngCó nhiều bối cảnh khác nhau có thể. Ví dụ với quản lý bài viết từ Joomla. 4 trường phụ trợ, danh mục, cấp độ truy cập và thẻ Bạn có thể sử dụng Selenium với crom không?Thông qua WebDriver, Selenium hỗ trợ tất cả các trình duyệt chính trên thị trường như Chrome/Chromium , Firefox, Internet Explorer, Edge và Safari.
Làm cách nào để khởi chạy trình duyệt Chromium trong Selenium Python?Truy cập liên kết. https. // chromedriver. crom. org/tải xuống . Sẽ có sẵn các liên kết để tải xuống cho các phiên bản chromedriver khác nhau. Chọn phiên bản tương thích với Chrome có sẵn trên hệ thống của chúng tôi.
Làm cách nào để cài đặt Chrome WebDriver cho Selenium Python?Mở terminal của bạn và sử dụng pip , chúng ta có thể cài đặt thư viện Python của Selenium bằng lệnh sau. . pip cài đặt selen # hoặc pip3 cài đặt selen python -c "nhập selen; in(selenium. **phiên bản**)" pip cài đặt trình quản lý web# hoặc pip3 cài đặt trình quản lý web |