Соскрести все изображения с нескольких страниц сайта? - PullRequest
0 голосов
/ 30 сентября 2019

Мне нужно очистить все изображения страниц URL, приведенных в коде, но я мог сделать это только вручную на каждой странице до последней страницы (100-й страницы).

Этокод для очистки каждой страницы, и я заменяю номер страницы каждый раз и запускаю код!

Ниже

Есть ли способ добавить функцию переменной и запустить цикл, пока не получит ошибку, в этом случае страница 404 (так как больше страниц не будетбыть оставленным)?

from bs4 import*
import requests as rq
r2 = rq.get("https://www.gettyimages.in/photos/aishwarya-rai?family=editorial&page=1&phrase=aishwarya%20rai&sort=mostpopular")

soup2 = BeautifulSoup(r2.text, "html.parser") 

links = []

x = soup2.select('img[src^="https://media.gettyimages.com/photos/"]')  #the frame where it shows the images

for img in x:
    links.append(img['src'])


for index, img_link in enumerate(links):
      img_data = rq.get(img_link).content
      with open("aishwarya_rai/"+str(index+2)+'.jpg', 'wb+') as f:
           f.write(img_data)
else:
      f.close()

Страница варьируется от 1 до 100.

Мне нужен дополнительный код, который делает переменную "значение страницы" и циклически повторяется до 100

1 Ответ

0 голосов
/ 30 сентября 2019

Используйте функцию format() и передайте переменную страницы.

from bs4 import*
import requests as rq

url="https://www.gettyimages.in/photos/aishwarya-rai?family=editorial&page={}&phrase=aishwarya%20rai&sort=mostpopular"

links = []
for page in range(1,101):
    print(url.format(page))
    r2 = rq.get(url.format(page))
    soup2 = BeautifulSoup(r2.text, "html.parser")
    x = soup2.select('img[src^="https://media.gettyimages.com/photos/"]')  
    for img in x:
      links.append(img['src'])

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