Skrobię zawartość ze strony internetowej za pomocą Pythona. Najpierw użyłem BeautifulSoup
i Mechanize
na Pythonie, ale zobaczyłem, że na stronie znajduje się przycisk, który tworzył treść za pomocą JavaScript, więc postanowiłem użyć Selenium
.Selen kontra BeautifulSoup dla skrobania WWW
Biorąc pod uwagę, że mogę znaleźć elementy i uzyskać ich zawartość za pomocą Selenium z metodami takimi jak driver.find_element_by_xpath
, z jakiego powodu używam BeautifulSoup
, kiedy mogłem po prostu użyć Selenium do wszystkiego?
W tym konkretnym przypadku muszę użyć Selenium, aby kliknąć przycisk JavaScript, więc czy lepiej jest używać Selenium do parsowania, czy też powinienem używać zarówno Selenu, jak i Pięknej Zupy?
Nigdy wcześniej nie używałam Selenium do parsowania HTML, ale BeautifulSoup jest dość solidny. To powiedziawszy, skoro już używasz Selenium do czegoś, czemu nie użyć go dla obu, dopóki nie wiesz, dlaczego potrzebujesz czegoś innego? – crowder
@crowder tak, na razie robię wszystko z Selenium, ale użyłem BS wcześniej, więc chciałbym wiedzieć, który jest naprawdę najlepszy. Jeśli chodzi o parsowanie, myślę, że jest to trochę to samo, na przykład, z Selenium mamy driver.find_elements_by_class_name ("...") i z BS mamy soup.findAll ("...", {'class' : "...."}). Widziałem, że BS jest trochę wolna, co o tym myślisz? – elie
@elie: Naprawdę chodzi o to, co próbujesz osiągnąć. Selenium jest zaprojektowane jako narzędzie do automatyzacji internetowej, jest to przesada, jeśli chcesz tylko parsować HTML. Jeśli potrzebujesz jakiejś interakcji ze stroną, użyj Selenium. –