Tôi đang sử dụng selenium-python với PhantomJS. Mã này khá giống như thế này:PhantomJS ngẫu nhiên không thoát (sử dụng Selenium với Python)
from selenium.webdriver import PhantomJS
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
driver = PhantomJS()
wait = WebDriverWait(driver, 10)
driver.get(url)
while True:
// scrap the page
try:
driver.find_elements_by_css_selector('.next')[0].click()
except: break
wait.until(expected_conditions.visibility_of_element_located((By.CSS_SELECTOR, '.loading')))
wait.until(expected_conditions.invisibility_of_element_located((By.CSS_SELECTOR, '.loading')))
driver.quit()
Tôi sử dụng tác vụ cần chạy mã này định kỳ. Vấn đề là theo thời gian có một số quá trình phantomjs cũ. Khi tôi nhìn vào nhật ký cần tây nhiệm vụ được hoàn thành thành công mà không có bất kỳ lỗi nào nhưng quá trình phantomjs vẫn đang chạy.
Một số thông tin thêm:
- Tôi đang sử dụng Python 3.2
- Tôi đang sử dụng cần tây 3.1 với nhịp
- Tôi đang sử dụng Debian Wheezy
- PhamtomJS tôi biên soạn từ nguồn và tạo ra một liên kết tượng trưng như sau:
ln -s /opt/phantomjs/bin/phantomjs /usr/local/bin/
Ai đó có thể đề xuất cách gỡ lỗi và tìm ra lỗi của ai?
Bạn có thể thay thế PhantomJS bằng Trình duyệt ưa thích của mình và đặt nó trên màn hình ảo unter Linux với xvfbwrapper. Nếu những quá trình đó tồn tại thì đó có thể là vấn đề của selen. – barrios
Đó sẽ là giải pháp cuối cùng để chuyển sang trình duyệt khác (nói Firefox hoặc Chromium với XVFB). Có cách nào khác để gỡ lỗi và tìm ra lỗi của ai không? – Ali
Vì bạn có thể đọc biên dịch ảo không được khuyến khích nếu các tệp nhị phân phù hợp với nhu cầu của bạn. Điều gì về việc cài đặt nó từ repos debian hoặc sử dụng các tập tin biên dịch sẵn? – barrios