Соскоб Flickr с Селеном / Красивый суп на Питоне - ABSWP - PullRequest
0 голосов
/ 02 июля 2018

Я прохожу через Automate Boring Stuff с Python и застрял в главе о загрузке данных из интернета. Одной из задач является загрузка фотографий с заданного ключевого слова из Flickr.

У меня огромная проблема с очисткой этого сайта. Я пробовал BeautifulSoup (который я считаю неуместным в данном случае, поскольку он использует Javascript) и Selenium. Глядя на HTML, я думаю, что я должен найти класс «оверлей». Однако независимо от того, какую опцию я использую (find_element_by_class_name, ...by_text, ...by_partial_text), я не могу найти эти элементы (я получаю: ".

Не могли бы вы помочь мне уточнить, что я делаю не так? Я также был бы благодарен за любые материалы, которые могли бы помочь мне лучше понять такие случаи. Спасибо!

Вот мой простой код:

import sys
search_keywords = sys.argv[1]
from selenium import webdriver
browser = webdriver.Firefox()

browser.get(f'https://www.flickr.com/search/?text={search_keywords}')
elems = browser.find_element_by_class_name("overlay")
print(elems)
elems.click()

Примеры ключевых слов, которые я печатаю в оболочке: "интерьер промышленного дизайна"

1 Ответ

0 голосов
/ 02 июля 2018

Получаете ли вы сообщение об ошибке? С Selenium полезно заключать код в блоки try / кроме.

Что именно ты пытаешься сделать, скачать фотографии? С небольшим переписыванием

try:
     options = webdriver.ChromeOptions()
     #options.add_argument('--headless')
     driver = webdriver.Chrome(chrome_options = options)
     search_keywords = "cars"
     driver.get(f'https://www.flickr.com/search/?text={search_keywords}')
     time.sleep(1)

 except Exception as e:
     print("Error loading search results page" + str(e))

 try:
     elems = driver.find_element_by_class_name("overlay")
     print(elems)
     elems.click()
     time.sleep(5)
 except Exception as e:
     print(str(e))

Загружает страницу, как ожидалось, а затем нажимает на фотографию, что приводит нас к Эта страница Я мог бы помочь больше, если бы вы могли подробнее рассказать о том, чего вы хотите достичь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...