Красивый суп: заменить часть источника изображения, который был возвращен - PullRequest
0 голосов
/ 20 октября 2018

Я новичок в python и новичок в прекрасном супе, поэтому на практике я сделал скребок для изображений, который работает по большей части.Я могу найти изображения и загрузить их на свой компьютер и поместить их в папки в зависимости от их имени.Но я столкнулся с проблемой.Это мой код

import requests
from bs4 import BeautifulSoup
import os.path

url = "https://example.net/g/1"
i = 1
data = requests.get(url)

soup = BeautifulSoup(data.text, 'html.parser')
for sou in soup.findAll("div", {"class": "gallery"}):
    sou.decompose()

containers = soup.find_all('img')
title = soup.find('h1').text
imgsrc = containers

for imgs in imgsrc: 
    if ".jpg" in imgs['src']:
        sauce = (imgs['src'])

        if sauce[:1] =="/":
          image = 'https:' + sauce
        else:
          image = sauce

        nametemp = imgs.get('alt')
        if nametemp is None:
                filename = str(i)
                i = i+1
                print(image)

, и когда я его запускаю, я получаю эти источники изображений обратно,

  1. https://t.example.net/galleries/9/cover.jpg
  2. https://t.example.net/galleries/9/1t.jpg
  3. https://t.example.net/galleries/9/2t.jpg

Это то, что я хочу по большей части, но возвращаемые источники - это миниатюры, поэтому они маленькие.Чтобы получить полноразмерные изображения, это довольно легко.Просто замените два Ц.

Мой вопрос: как я могу заменить вышеперечисленное на этот

  1. https://i.example.net/galleries/9/1.jpg
  2. https://i.example.net/galleries/9/2.jpg

Я пытался использовать replace_with (), и я посмотрел документацию, но у меня есть немного понимания.

1 Ответ

0 голосов
/ 20 октября 2018

Ваш код довольно грязный и не имеет отношения к вашему вопросу.Итак, давайте предположим, что у вас есть список URL-адресов с именем thumbnails:

thumbnails = [
    'https://t.example.net/galleries/9/1t.jpg',
    'https://t.example.net/galleries/9/2t.jpg',
    'https://t.example.net/galleries/9/3t.jpg',
]

Затем вы можете использовать замену регулярных выражений внутри понимания списка, чтобы преобразовать URL-адреса так, как вы хотели:

import re
images = [re.sub(r't(\.jpg)', r'\1', url) for url in thumbnails]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...