この記事では主にPythonクローラー画像の簡単な実装に関する関連情報を紹介しますので、必要な友達は
Pythonクローラー画像の簡単な実装
を参照してください。私はよくZhihuを訪問し、時々願っています。いくつかの問題を解決するために、写真は一緒に保存されます。そこでこのプログラム。これは、画像のブラシをかけられた部分のみをクロールできる、非常にシンプルな画像クローラー プログラムです。私はこの部分の内容に詳しくないので、あまり説明せずに少しだけ言ってコードを記録します。ご興味がございましたら、直接ご利用いただけます。個人テストは Zhihu などの Web サイトで利用できます。
前の記事では、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 中国語 Web サイトの他の関連記事を参照してください。