BeautifulSoup не сканирует все изображения на странице - PullRequest
0 голосов
/ 09 июля 2020

Я хочу сканировать изображения Google в google colab для обучения tf-модели.

Скрипт

doc = BeautifulSoup(requests.get("https://www.google.com/search?q=dog&tbm=isch").text, "html.parser")
all_imgs = [[image.load_img(tf.keras.utils.get_file("images",e.attrs["src"]),target_size=[90,90]),e.attrs["src"][-9:]] for e in doc.select("img")[1:]]
for e in all_imgs:
    plt.figure()
    plt.imshow(e[0])
    plt.title(e[1])
    plt.show()

Пояснение:
do c - это проанализированный html код
all_imgs - это список в следующем формате: [[img,end_of_img_link],[img,end_of_img_link],...]

Проблема в том, что на выходе снова и снова появляется одно и то же изображение.
Даже если я изменю URL-адрес для сканирования изображений кошек, таких как search?q=cat, он все равно покажет то же изображение собаки!

В чем проблема?

РЕДАКТИРОВАТЬ: Я понял что список состоит из множества копий одного и того же изображения, поэтому проблема заключается в BeautifulSoup, а не в matplotlib

1 Ответ

0 голосов
/ 09 июля 2020

Я нашел решение:
Все картинки имели имя "images".
Из-за этого первая загруженная картинка не перезаписывалась. Пришлось сделать: !rm -rf /root/.keras/datasets/ в блокноте, чтобы удалить папку с сохраненным изображением.

Теперь я назову сохраненное изображение по-другому.

...