Почему соскоб обнаружения только 20 тегов img? - PullRequest
0 голосов
/ 04 декабря 2018
from urllib.request import Request,urlopen,urlretrieve
import urllib
from bs4 import BeautifulSoup
key = input("Enter the image to be searched \n")
urlpath = "https://www.google.com/search? 
   q="+key+"&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiE9- 
   7LjobfAhXCEHIKHQy6A00Q_AUIDigB&biw=1920&bih=947#imgrc=_"
page_req = Request(urlpath, headers={'User-Agent': 'Mozilla/5.0'})
page= urlopen(page_req).read()
soup =BeautifulSoup(page,'html.parser')
images= soup.find_all('img')
print("Total"+str(len(images)))
image_links=[]
for img in images:
    image_links.append(img.get('src'))
image_count=0
for link in image_links:
    urlretrieve(link,'image_'+str(image_count)+'.jpg')
    image_count+=1

Приведенный выше скрипт обнаруживает только 20 тегов изображений на странице изображений Google.Почему он не может обнаружить все теги изображений на веб-странице?

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

вам нужно установить лучший User-Agent, чтобы получить больше 100

user_agent 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'
page_req = Request(urlpath, headers={'User-Agent': user_agent})
0 голосов
/ 04 декабря 2018

HTML-документ с этим URL содержит только 20 изображений.

Остальные загружаются с помощью JavaScript для изменения DOM после загрузки страницы.

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