>백엔드 개발 >파이썬 튜토리얼 >Python 크롤러에 대한 실제 소개: 웹 이미지 크롤링

Python 크롤러에 대한 실제 소개: 웹 이미지 크롤링

WBOY
WBOY앞으로
2022-07-11 12:06:362982검색

이 기사에서는 웹 이미지 크롤링과 관련된 문제를 주로 정리하는 Python에 대한 관련 지식을 제공합니다. 데이터를 효율적으로 얻으려면 크롤러를 사용하는 것이 매우 쉽고 Python을 사용하여 크롤러를 수행하는 것도 매우 유용합니다. 간단하고 편리합니다. 간단한 작은 크롤러 프로그램을 통해 크롤러를 작성하는 기본 과정을 함께 살펴보겠습니다.

Python 크롤러에 대한 실제 소개: 웹 이미지 크롤링

【관련 추천: Python3 동영상 튜토리얼

정보가 폭발적으로 증가하는 시대에 데이터를 효율적으로 얻고 싶다면 크롤러를 사용하는 것이 매우 쉽습니다. Python을 사용하여 크롤러를 만드는 것도 매우 간단하고 편리합니다. 간단한 작은 크롤러 프로그램을 통해 크롤러를 작성하는 기본 과정을 살펴보겠습니다.

Preparation

Language: python

IDE: pycharm

우선 사용해야 할 것이 있습니다. 처음 시작하기 위한 가장 간단한 프로그램이기 때문에 주로 다음 두 가지 라이브러리를 사용합니다.

import requests //用于请求网页
import re  //正则表达式,用于解析筛选网页中的信息

그 중 re는 Python과 함께 제공되며 요청 라이브러리는 직접 설치해야 합니다. 명령줄에 pip 설치 요청을 입력하면 됩니다.

그런 다음 임의의 웹사이트를 찾으세요. 다음은 이모티콘 웹사이트입니다.

참고: 여기 이모티콘 웹사이트의 콘텐츠는 무료로 다운로드할 수 있으므로 크롤러는 프로세스를 단순화합니다. . 이 과정에서 유료 리소스를 크롤링하지 않도록 주의하세요.

우리가 해야 할 일은 크롤러를 통해 이러한 이모티콘을 컴퓨터에 다운로드하는 것입니다.

크롤러 프로그램 작성

먼저 이 웹사이트에 Python을 통해 접속해야 합니다. 코드는 다음과 같습니다.

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0'
    }
response = requests.get('https://qq.yh31.com/zjbq/',headers=headers)  //请求网页

헤더 섹션을 추가하는 이유는 일부 웹 페이지에서 Python을 통해 요청한다는 것을 인식하기 때문입니다. 거부하므로 일반 요청 헤더로 변경합니다. 임의로 하나를 찾거나 f12를 사용하여 네트워크 정보에서 하나를 복사할 수 있습니다.

그런 다음 웹 페이지 코드에서 크롤링하려는 이미지의 위치를 ​​찾아야 합니다. f12로 소스 코드를 확인하고 다음과 같이 이모티콘 패키지를 찾습니다.

그런 다음 일치하는 규칙을 만들고 정규식을 사용하여 중간에 있는 문자열을 일치시키세요. 교체하세요. 가장 간단한 것은 이렇게 .*?

t = '<img src="(.*?)" alt="(.*?)" width="160" height="120">'

입니다.

그런 다음 re 라이브러리에서 findall 메소드를 호출하여 관련 콘텐츠를 크롤링할 수 있습니다.

result = re.findall(t, response.text)

반환된 콘텐츠는 문자열로 구성된 목록입니다. 마지막으로 이미지를 다운로드하고 Python 문을 통해 파일에 저장합니다. 크롤링된 주소를 폴더에 넣으면 됩니다.

프로그램 코드

import requests
import re
import os

image = '表情包'
if not os.path.exists(image):
    os.mkdir(image)
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0'
    }
response = requests.get('https://qq.yh31.com/zjbq/',headers=headers)
response.encoding = 'GBK'
response.encoding = 'utf-8'
print(response.request.headers)
print(response.status_code)
t = '<img src="(.*?)" alt="(.*?)" width="160" height="120">'
result = re.findall(t, response.text)
for img in result:
    print(img)
    res = requests.get(img[0])
    print(res.status_code)
    s = img[0].split('.')[-1]  #截取图片后缀,得到表情包格式,如jpg ,gif
    with open(image + '/' + img[1] + '.' + s, mode='wb') as file:
        file.write(res.content)

최종 결과는 다음과 같습니다.

[관련 권장 사항: Python3 비디오 튜토리얼 ]

위 내용은 Python 크롤러에 대한 실제 소개: 웹 이미지 크롤링의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제