이 글에서는 Python 크롤러images의 간단한 구현에 대한 관련 정보를 주로 소개합니다. 필요한 친구들은
Python 크롤러 이미지의 간단한 구현
Zhihu를 자주 방문하고 때로는 바랍니다. 일부 문제를 해결하기 위해 사진이 함께 저장됩니다. 그러므로 이 프로그램. 이것은 브러시 아웃된 이미지 부분만 크롤링할 수 있는 매우 간단한 이미지 크롤러 프로그램입니다. 이 부분의 내용은 잘 알지 못하기 때문에 많은 설명은 생략하고 몇마디만 말하고 코드만 기록하겠습니다. 관심이 있으신 분은 직접 이용해 보시기 바랍니다. 개인 테스트는 Zhihu와 같은 웹사이트에서 가능합니다.
이전 글에서는 URL을 통해 이미지를 여는 방법을 공유했는데, 그 목적은 먼저 크롤링된 이미지가 어떻게 보이는지 확인한 다음 필터링하여 저장하는 것입니다.
요청 라이브러리는 페이지 정보를 얻는 데 사용됩니다. 페이지 정보를 얻을 때 서버에 액세스하기 위해 프로그램을 브라우저로 위장하기 위해 header가 필요합니다. 그렇지 않으면 서버에서 거부될 수 있습니다. . 그런 다음 BeautifulSoup을 사용하여 과도한 정보를 필터링하여 이미지 주소를 가져옵니다. 사진을 가져온 후 사진 크기에 따라 아바타, 이모티콘과 같은 작은 사진을 필터링하세요. 마지막으로 OpenCV, skimage, PIL 등을 포함하여 이미지를 열거나 저장할 때 더 많은 선택권이 있습니다.
절차는 다음과 같습니다.
# -*- coding=utf-8 -*- import requests as req from bs4 import BeautifulSoup from PIL import Image from io import BytesIO import os from skimage import io url = "https://www.zhihu.com/question/37787176" headers = {'User-Agent' : 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Mobile Safari/537.36'} response = req.get(url,headers=headers) content = str(response.content) #print content soup = BeautifulSoup(content,'lxml') images = soup.find_all('img') print u"共有%d张图片" % len(images) if not os.path.exists("images"): os.mkdir("images") for i in range(len(images)): img = images[i] print u"正在处理第%d张图片..." % (i+1) img_src = img.get('src') if img_src.startswith("http"): ## use PIL ''' print img_src response = req.get(img_src,headers=headers) image = Image.open(BytesIO(response.content)) w,h = image.size print w,h img_path = "images/" + str(i+1) + ".jpg" if w>=500 and h>500: #image.show() image.save(img_path) ''' ## use OpenCV import numpy as np import urllib import cv2 resp = urllib.urlopen(img_src) image = np.asarray(bytearray(resp.read()), dtype="uint8") image = cv2.imdecode(image, cv2.IMREAD_COLOR) w,h = image.shape[:2] print w,h img_path = "images/" + str(i+1) + ".jpg" if w>=400 and h>400: cv2.imshow("Image", image) cv2.waitKey(3000) ##cv2.imwrite(img_path,image) ## use skimage ## image = io.imread(img_src) ## w,h = image.shape[:2] ## print w,h #io.imshow(image) #io.show() ## img_path = "images/" + str(i+1) + ".jpg" ## if w>=500 and h>500: ## image.show() ## image.save(img_path) ## io.imsave(img_path,image) print u"处理完成!"
위 내용은 Python에서 크롤러 이미지를 구현하는 방법에 대한 간단한 예제 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!