ホームページ  >  記事  >  バックエンド開発  >  Rampage コミックの GIF 画像をキャプチャするための Python クローラーを記述するサンプル コードを説明する

Rampage コミックの GIF 画像をキャプチャするための Python クローラーを記述するサンプル コードを説明する

高洛峰
高洛峰オリジナル
2017-03-10 13:53:082465ブラウズ

この記事では、Rampage Comic で GIF 画像をキャプチャするための Python クローラーのサンプル コードを記述する方法を説明します。サンプル コードは Python3 であり、urllib モジュール、リクエスト モジュール、および BeautifulSoup モジュールを使用します。必要な友達はそれを参照できます。この記事で紹介するのは、オフラインで表示するために Rampage Comic から興味深い GIF を取得することです。クローラーは python3.3 を使用して開発され、主に urllib、request、および BeautifulSoup モジュールを使用しました。

urllib モジュールは、World Wide Web からデータを取得するための高レベルのインターフェイスを提供します。urlopen() を使用して URL を開くことは、Python の組み込みの open() を使用してファイルを開くことと同じです。しかし、違いは、前者は URL をパラメータとして受け取り、開いているファイル ストリームに対してシーク操作を実行する方法がないことです (低レベルの観点から見ると、実際にはソケットを操作しているため、はシーク操作を実行する方法ではありません)、後者では受信されるのはローカル ファイル名です。

Python の BeautifulSoup モジュールは、HTML と XML の解析に役立ちます

まず、通常、Web クローラーを作成します。つまり、HTML ソース コードと Web ページのその他のコンテンツをクロールし、対応するコンテンツを分析して抽出します。

このような HTML コンテンツの分析作業は、通常の正規表現 re モジュールを使用して少しずつ一致させるだけであれば、単純なコンテンツの Web ページを分析するのに基本的に十分です。
しかし、重いワークロードと複雑なコンテンツを含む HTML を解析する必要がある場合、re モジュールを使用して実装するのは不可能または困難であることがわかります。
beautifulsoup モジュールを使用して HTML ソース コードを分析すると、作業が非常に簡単になり、HTML ソース コードの分析効率が大幅に向上することがわかります。
注: BeautifulSoup はサードパーティのライブラリであり、私は bs4 を使用しています。 urllib2 は python3 の urllib.request に割り当てられます。ドキュメント内の原文は次のとおりです。
注: urllib2 モジュールは、Python 3 の urllib.request および urllib.error という名前の複数のモジュールに分割されています。
クローラーのソース コードは次のとおりです


# -*- coding: utf-8 -*-

import urllib.request
import bs4,os

page_sum = 1 #设置下载页数

path = os.getcwd()
path = os.path.join(path,'暴走GIF')
if not os.path.exists(path):
  os.mkdir(path)                 #创建文件夹

url = "http://baozoumanhua.com/gif/year"   #url地址
headers = {                     #伪装浏览器
  'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)'
         ' Chrome/32.0.1700.76 Safari/537.36'
}

for count in range(page_sum):
  req = urllib.request.Request(
    url = url+str(count+1),
    headers = headers
  )
  print(req.full_url)
  content = urllib.request.urlopen(req).read()

  soup = bs4.BeautifulSoup(content)          # BeautifulSoup
  img_content = soup.findAll('img',attrs={'style':'width:460px'})

  url_list = [img['src'] for img in img_content]   #列表推导 url
  title_list = [img['alt'] for img in img_content]  #图片名称

  for i in range(url_list.__len__()) :
    imgurl = url_list[i]
    filename = path + os.sep +title_list[i] + ".gif"
    print(filename+":"+imgurl)             #打印下载信息
    urllib.request.urlretrieve(imgurl,filename)    #下载图片

15 行目で、ダウンロードされる数を変更できますpython baozougif.py コマンドを実行すると、同じディレクトリに「Rampage GIF」のフォルダーが生成され、すべての画像がこのディレクトリに自動的にダウンロードされます。

以上がRampage コミックの GIF 画像をキャプチャするための Python クローラーを記述するサンプル コードを説明するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。