Je ne parviens pas à extraire des images du site Web www.kissmanga.com. J'utilise Python3 et les bibliothèques Requests et Beautifulsoup. Les balises d'image grattées donnent un "src" vide.

SRC:

from bs4 import BeautifulSoup
import requests

scraper = cfscrape.create_scraper()

url = "http://kissmanga.com/Manga/Bleach/Bleach-634--Friend-004?id=235206"

response = requests.get(url)

soup2 = BeautifulSoup(response.text, 'html.parser')

divImage = soup2.find('div',{"id": "divImage"})

for img in divImage.findAll('img'):
     print(img)

response.close()

Je pense que le grattage d'images est évité car je pense que le site Web utilise cloudflare. Sur cette hypothèse, j'ai également essayé d'utiliser la bibliothèque "cfscrape" pour gratter le contenu.

1
ibz 15 juil. 2015 à 03:39

2 réponses

Meilleure réponse

Vous devez attendre JavaScript pour injecter le code html des images.

Plusieurs outils sont capables de le faire, en voici quelques-uns:

J'ai pu le faire fonctionner avec Selenium:

from bs4 import BeautifulSoup

from selenium import webdriver
from selenium.common.exceptions import TimeoutException

driver = webdriver.Firefox()
# it takes forever to load the page, therefore we are setting a threshold
driver.set_page_load_timeout(5)

try:
    driver.get("http://kissmanga.com/Manga/Bleach/Bleach-634--Friend-004?id=235206")
except TimeoutException:
    # never ignore exceptions silently in real world code
    pass

soup2 = BeautifulSoup(driver.page_source, 'html.parser')
divImage = soup2.find('div', {"id": "divImage"})

# close the browser 
driver.close()

for img in divImage.findAll('img'):
    print img.get('src')

Reportez-vous à Comment télécharger une image à l'aide de demandes si vous souhaitez également télécharger ces images. .

3
Community 23 mai 2017 à 12:14

Avez-vous essayé de définir un user-agent personnalisé? Il est généralement considéré comme contraire à l'éthique de le faire, tout comme le grattage de manga.

0
Alyssa Haroldsen 15 juil. 2015 à 16:42