【问题标题】:How to get complete link of an image with python?如何使用python获取图像的完整链接?
【发布时间】:2016-06-18 18:37:15
【问题描述】:

我正在尝试制作一个爬虫,它可以进入网页并下载该页面上所有可用的图像。我的代码是这样的

import random
import urllib.request
import requests
from bs4 import BeautifulSoup

def get_images(url):
    code = requests.get(url)
    text = code.text
    soup = BeautifulSoup(text)
    for img in soup.findAll('img'):
        src = img.get('src')
        download_image(src)


def download_image(url):
    name = random.randrange(1, 100)
    image_name = str(name) + ".jpg"
    urllib.request.urlretrieve(url, image_name)

get_images("http://www.any_url.com/")

现在很多图片的src 标签中通常不包含完整的网址。现在,我的问题是如何获取图片的完整 URL 以便我可以下载它们?

【问题讨论】:

    标签: python beautifulsoup web-crawler


    【解决方案1】:

    图片的完整网址是网页的主机名 + src标签中的相对路径

    例如

    您网页的网址是http://example.com/foo/bar.html

    图片src标签为:<img src="/image/smiley.png">,

    那么您图片的绝对网址将是http://example.com/image/smiley.png

    使用内置函数urljoin()很容易执行此操作:

    from urllib.parse import urljoin
    webpage_url = 'http://example.com/foo/bar.html'
    src = '/folder/big/a.jpg'
    urljoin(webpage_url, src)
    

    【讨论】:

      猜你喜欢
      • 2021-10-29
      • 1970-01-01
      • 2019-12-23
      • 2016-03-04
      • 2014-10-25
      • 2010-11-27
      • 1970-01-01
      • 2023-03-12
      • 2021-12-25
      相关资源
      最近更新 更多