Загрузка изображений с BeautifulSoup, когда полная ссылка на изображение не появляется, если не навести курсор мыши на тег src - PullRequest
0 голосов
/ 20 мая 2018

Я пытаюсь загрузить изображения с этой страницы.Я написал следующий скрипт на Python:

import requests
import subprocess
from bs4 import BeautifulSoup

request = requests.get("http://ottofrello.dk/malerierstor.htm")
content = request.content
soup = BeautifulSoup(content, "html.parser")
element = soup.find_all("img")
for img in element:
    print (img.get('src'))

Однако я получаю только имена изображений, а не полный путь.На сайте я могу навести курсор на имя изображения, когда я проверяю html и появляется ссылка.Можно ли как-то разобрать эту ссылку с помощью BeautifulSoup? Изображение

Ответы [ 2 ]

0 голосов
/ 20 мая 2018

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

import requests
import subprocess
from bs4 import BeautifulSoup

request = requests.get("http://ottofrello.dk/malerierstor.htm")
content = request.content
soup = BeautifulSoup(content, "html.parser")
element = soup.find_all("img")
for img in element:
    print ('http://ottofrello.dk/' + img.get('src'))
0 голосов
/ 20 мая 2018

URI изображений на вашей странице размечены относительно имени хоста.

Вы можете создать абсолютный URL для каждого изображения, используя функцию urljoin в модуле urllib.parse.

from urllib.parse import urljoin

page_url = "http://ottofrello.dk/malerierstor.htm"
request = requests.get(page_url)


...
    for img in element:
        image_url = urljoin(
            page_url, 
            img.get('src')
        )
        print(image_url)
...