백엔드 개발 PHP 튜토리얼 웹사이트에서 이미지를 크롤링하고 자동으로 로컬로 다운로드

웹사이트에서 이미지를 크롤링하고 자동으로 로컬로 다운로드

Jun 13, 2023 pm 01:28 PM
오토메이션 비열한 이미지 다운로드

인터넷 시대에 사람들은 갤러리, 소셜 플랫폼 등 다양한 웹사이트에서 사진을 다운로드하는 데 익숙해졌습니다. 소수의 이미지만 다운로드하면 되는 경우에는 수동 조작이 번거롭지 않습니다. 그러나 많은 수의 사진을 다운로드해야 하는 경우 수동 작업은 매우 시간이 많이 걸리고 힘들게 됩니다. 이때 사진 자동 다운로드를 실현하려면 자동화 기술을 사용해야 합니다.

이 기사에서는 Python 크롤러 기술을 사용하여 웹사이트에서 로컬 컴퓨터로 이미지를 자동으로 다운로드하는 방법을 소개합니다. 이 프로세스는 두 단계로 나뉩니다. 첫 번째 단계는 Python의 요청 라이브러리 또는 셀레늄 라이브러리를 사용하여 웹 사이트의 이미지 링크를 가져오는 것입니다. 두 번째 단계는 얻은 결과에 따라 Python의 urllib 또는 요청 라이브러리를 통해 이미지를 로컬에 다운로드하는 것입니다. 연결.

1단계: 이미지 링크 가져오기

  1. 요청 라이브러리를 사용하여 링크 크롤링

먼저 요청 라이브러리를 사용하여 이미지 링크를 크롤링하는 방법을 살펴보겠습니다. 샘플 코드는 다음과 같습니다.

import requests
from bs4 import BeautifulSoup

url = 'http://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

img_tags = soup.find_all('img')

urls = [img['src'] for img in img_tags]
로그인 후 복사

예제 웹사이트를 예로 들면, 먼저 요청 라이브러리를 사용하여 웹 콘텐츠를 크롤링하고 BeautifulSoup 라이브러리를 사용하여 HTML을 구문 분석합니다. 그런 다음 soup.find_all('img') 메서드를 사용하여 HTML의 모든 img 태그를 가져오고 목록 이해를 사용하여 각 태그의 src 속성 값을 추출합니다. soup.find_all('img') 方法来获取 HTML 中所有的 img 标签,并使用列表解析式将每个标签中的 src 属性的值提取出来。

  1. 使用 selenium 库爬取链接

另一种获取图片链接的方式是使用 selenium 库,示例代码如下:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from time import sleep

url = 'http://example.com'

options = Options()
options.add_argument('--headless')

service = Service('/path/to/chromedriver')
driver = webdriver.Chrome(service=service, options=options)
driver.get(url)

sleep(2)

img_tags = driver.find_elements_by_tag_name('img')

urls = [img.get_attribute('src') for img in img_tags]
로그인 후 복사

这里我们使用了 ChromeDriver,使用时需要先将自己电脑上的 ChromeDriver 的路径填入到示例代码中的 'path/to/chromedriver' 处。第二行代码启用无头浏览器,避免在 Chrome 浏览器窗口中进行操作,提高运行速度。然后我们使用 selenium 库中的 webdriver 模块建立了一个 Chrome 浏览器的实例,通过设置 driver.get(url) 来打开 Example 网站。然后使用 driver.find_elements_by_tag_name('img') 获取到所有的 img 标签,进而获取每个标签中的 src 属性的值。

第二步:下载图片

下载图片的方式有多种,这里我们使用 Python 自带的 urllib 库或者 requests 库来下载。示例代码如下:

import urllib.request

for url in urls:
    filename = url.split('/')[-1]
    urllib.request.urlretrieve(url, filename)
로그인 후 복사

这里使用 urllib.request 库将图片从网络上下载到本地,使用 url.split('/')[-1] 来获取图片的文件名,并将其赋值给变量 filename,最后使用 urllib.request.urlretrieve(url, filename) 将图片下载到本地。需要注意的是,如果 url 中包含中文,还需要对 url 进行编码处理。

这里再简单介绍一下使用 requests 库下载图片的方法,示例代码如下:

import requests

for url in urls:
    filename = url.split('/')[-1]
    response = requests.get(url)
    with open(filename, 'wb') as f:
        f.write(response.content)
로그인 후 복사

这里使用 requests 库获取图片二进制文件,将其写入文件。需要注意的是,由于二进制文件写入模式为 'wb',需要使用 with open(filename, 'wb') as f:

    셀레늄 라이브러리를 사용하여 링크 크롤링

    이미지 링크를 얻는 또 다른 방법은 셀레늄 라이브러리를 사용하는 것입니다. 샘플 코드는 다음과 같습니다.

    rrreee🎜여기서는 ChromeDriver를 사용합니다. 먼저 사용하려면 샘플 코드의 'path/to/chromedriver'에 컴퓨터의 ChromeDriver 경로를 입력하세요. 두 번째 코드 줄은 헤드리스 브라우저를 활성화하여 Chrome 브라우저 창에서 작동하지 않고 속도를 높입니다. 그런 다음 Selenium 라이브러리의 webdriver 모듈을 사용하여 Chrome 브라우저의 인스턴스를 생성하고 driver.get(url)을 설정하여 예제 웹 사이트를 엽니다. 그런 다음 driver.find_elements_by_tag_name('img')를 사용하여 모든 img 태그를 가져온 다음 각 태그의 src 속성 값을 가져옵니다. 🎜🎜2단계: 이미지 다운로드 🎜🎜이미지를 다운로드하는 방법에는 여러 가지가 있습니다. 여기서는 Python의 자체 urllib 라이브러리를 사용하거나 다운로드할 라이브러리를 요청합니다. 샘플 코드는 다음과 같습니다. 🎜rrreee🎜여기에서는 urllib.request 라이브러리를 사용하여 인터넷에서 로컬로 이미지를 다운로드하고, url.split('/')[-1]을 사용하여 이미지를 가져옵니다. 이미지의 파일 이름을 지정하고 이를 filename 변수에 할당한 다음 마지막으로 urllib.request.urlretrieve(url, filename)을 사용하여 이미지를 로컬로 다운로드합니다. URL에 중국어가 포함되어 있으면 URL도 인코딩해야 합니다. 🎜🎜다음은 요청 라이브러리를 사용하여 이미지를 다운로드하는 방법에 대한 간략한 소개입니다. 샘플 코드는 다음과 같습니다. 🎜rrreee🎜여기에서는 요청 라이브러리를 사용하여 이미지 바이너리 파일을 가져와 파일에 씁니다. 바이너리 파일 쓰기 모드가 'wb'이므로 파일을 열려면 with open(filename, 'wb') as f:를 사용해야 한다는 점에 유의해야 합니다. 쓰기를 수행하여 각 파일이 제대로 닫혔는지 확인합니다. 🎜🎜요약🎜🎜요약하자면 Python 크롤러 기술을 통해 웹사이트의 이미지를 쉽게 크롤링하고 로컬에서 자동으로 다운로드할 수 있습니다. 이러한 자동화 기술은 업무 효율성을 높이는 데 도움이 되며, 대량의 이미지 처리가 필요한 작업에 매우 유용합니다. 동시에, 웹사이트에서 이미지를 크롤링하는 것은 관련 법률 및 규정을 준수하고 웹사이트의 저작권을 존중해야 한다는 점을 상기할 필요가 있습니다. 웹사이트로부터 공식적인 허가나 승인을 받지 않은 경우, 허가 없이 웹사이트의 이미지를 크롤링하지 마십시오. 🎜

위 내용은 웹사이트에서 이미지를 크롤링하고 자동으로 로컬로 다운로드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Python 크롤러를 배우는 데 시간이 얼마나 걸립니까? Python 크롤러를 배우는 데 시간이 얼마나 걸립니까? Oct 25, 2023 am 09:44 AM

Python 크롤러를 배우는 데 걸리는 시간은 사람마다 다르며 개인의 학습 능력, 학습 방법, 학습 시간 및 경험과 같은 요소에 따라 다릅니다. Python 크롤러를 배우는 것은 단순히 기술 자체를 배우는 것이 아니라 좋은 정보 수집 기술, 문제 해결 기술 및 팀워크 기술도 필요합니다. 지속적인 학습과 실습을 통해 점차 뛰어난 Python 크롤러 개발자로 성장하게 될 것입니다.

SpringBoot와 SpringMVC의 차이점과 비교 이해 SpringBoot와 SpringMVC의 차이점과 비교 이해 Dec 29, 2023 am 09:20 AM

SpringBoot와 SpringMVC를 비교하고 차이점을 이해하십시오. Java 개발의 지속적인 개발로 인해 Spring 프레임워크는 많은 개발자와 기업에서 첫 번째 선택이 되었습니다. Spring 생태계에서 SpringBoot와 SpringMVC는 매우 중요한 두 가지 구성 요소입니다. 둘 다 Spring 프레임워크를 기반으로 하지만 기능과 사용법에 약간의 차이가 있습니다. 이 기사에서는 SpringBoot와 Spring을 비교하는 데 중점을 둘 것입니다.

PHP 지속적 통합의 Jenkins: 빌드 및 배포 자동화의 마스터 PHP 지속적 통합의 Jenkins: 빌드 및 배포 자동화의 마스터 Feb 19, 2024 pm 06:51 PM

현대 소프트웨어 개발에서 CI(지속적 통합)는 코드 품질과 개발 효율성을 향상시키는 중요한 방식이 되었습니다. 그중 Jenkins는 성숙하고 강력한 오픈 소스 CI 도구로, 특히 PHP 애플리케이션에 적합합니다. 다음 콘텐츠에서는 Jenkins를 사용하여 PHP 지속적 통합을 구현하는 방법을 살펴보고 특정 샘플 코드와 세부 단계를 제공합니다. Jenkins 설치 및 구성 먼저 Jenkins를 서버에 설치해야 합니다. 공식 웹사이트에서 최신 버전을 다운로드하여 설치하세요. 설치가 완료되면 관리자 계정 설정, 플러그인 설치, 작업 구성을 포함한 몇 가지 기본 구성이 필요합니다. 새 작업 만들기 Jenkins 대시보드에서 "새 작업" 버튼을 클릭하세요. "무료"를 선택하세요.

Apple 바로가기 명령 자동화를 삭제하는 방법 Apple 바로가기 명령 자동화를 삭제하는 방법 Feb 20, 2024 pm 10:36 PM

Apple 바로가기 자동화 삭제 방법 Apple의 새로운 iOS13 시스템이 출시되면서 사용자는 바로가기(Apple 바로가기)를 사용하여 다양한 휴대폰 작업을 사용자 정의하고 자동화할 수 있어 사용자의 휴대폰 경험이 크게 향상됩니다. 그러나 때로는 더 이상 필요하지 않은 일부 바로가기를 삭제해야 할 수도 있습니다. 그렇다면 Apple 단축키 명령 자동화를 삭제하는 방법은 무엇입니까? 방법 1: 바로가기 앱을 통해 삭제하세요. iPhone 또는 iPad에서 '바로가기' 앱을 엽니다. 하단 탐색 모음에서 선택

효율적인 Java 크롤러 실습: 웹 데이터 크롤링 기술 공유 효율적인 Java 크롤러 실습: 웹 데이터 크롤링 기술 공유 Jan 09, 2024 pm 12:29 PM

자바 크롤러 실습: 웹페이지 데이터를 효율적으로 크롤링하는 방법 소개: 인터넷의 급속한 발전으로 인해 다양한 웹페이지에는 수많은 귀중한 데이터가 저장되어 있습니다. 이 데이터를 얻으려면 각 웹 페이지에 수동으로 액세스하여 정보를 하나씩 추출해야 하는 경우가 많으며 이는 의심할 여지 없이 지루하고 시간이 많이 걸리는 작업입니다. 이 문제를 해결하기 위해 사람들은 다양한 크롤러 도구를 개발했으며 그중 Java 크롤러가 가장 일반적으로 사용되는 것 중 하나입니다. 이 기사에서는 독자들이 Java를 사용하여 효율적인 웹 크롤러를 작성하는 방법을 이해하고 특정 코드 예제를 통해 실습을 보여줄 것입니다. 1. 파충류의 기초

Python 스크립트를 사용하여 Linux 플랫폼에서 작업 예약 및 자동화 구현 Python 스크립트를 사용하여 Linux 플랫폼에서 작업 예약 및 자동화 구현 Oct 05, 2023 am 10:51 AM

Python 스크립트를 사용하여 Linux 플랫폼에서 작업 예약 및 자동화 구현 현대 정보 기술 환경에서 작업 예약 및 자동화는 대부분의 기업에 필수적인 도구가 되었습니다. 간단하고 배우기 쉽고 기능이 풍부한 프로그래밍 언어인 Python은 Linux 플랫폼에서 작업 예약 및 자동화를 구현하는 데 매우 편리하고 효율적입니다. Python은 작업 예약을 위한 다양한 라이브러리를 제공하며, 그 중 가장 일반적으로 사용되고 강력한 라이브러리는 crontab입니다. crontab은 관리 및 스케줄링 시스템입니다

로봇 공학과 인공 지능이 공급망을 자동화하는 방법 로봇 공학과 인공 지능이 공급망을 자동화하는 방법 Feb 05, 2024 pm 04:40 PM

자동화 기술은 다양한 산업, 특히 공급망 분야에서 널리 사용되고 있습니다. 오늘날 이는 공급망 관리 소프트웨어의 중요한 부분이 되었습니다. 앞으로 자동화 기술이 더욱 발전함에 따라 전체 공급망과 공급망 관리 소프트웨어가 큰 변화를 겪게 될 것입니다. 이는 보다 효율적인 물류 및 재고 관리로 이어지고 생산 및 배송의 속도와 품질을 향상시켜 결과적으로 기업의 발전과 경쟁력을 촉진할 것입니다. 미래 지향적인 공급망 플레이어는 새로운 상황에 대처할 준비가 되어 있습니다. CIO는 조직을 위한 최상의 결과를 보장하는 데 앞장서야 하며, 공급망에서 로봇 공학, 인공 지능, 자동화의 역할을 이해하는 것이 중요합니다. 공급망 자동화란 무엇입니까? 공급망 자동화는 공급망 활동에 대한 인간의 참여를 줄이거나 제거하기 위해 기술적 수단을 사용하는 것을 의미합니다. 그것은 다양한 것을 다룬다.

Java를 사용하여 Linux에서 스크립팅 작업을 자동화하는 방법 Java를 사용하여 Linux에서 스크립팅 작업을 자동화하는 방법 Oct 05, 2023 pm 12:09 PM

Java를 사용하여 Linux에서 작업을 자동화하는 스크립트를 작성하는 방법 Linux 시스템에서는 Java를 사용하여 작업을 자동화하는 스크립트를 작성할 수 있습니다. Java는 강력한 객체 지향 기능과 풍부한 클래스 라이브러리 지원을 갖춘 크로스 플랫폼 프로그래밍 언어입니다. 이 기사에서는 Java를 사용하여 Linux에서 작업을 자동화하는 스크립트를 작성하는 방법을 배우고 구체적인 코드 예제를 제공합니다. 먼저 Linux에 JDK(Java Development Kit)를 설치해야 합니다. 나

See all articles