Python爬虫類を編纂して暴走漫画の上でgifピクチャーの実例をつかんで分かち合います。

2500 ワード

ここで紹介する爬虫類は暴走漫画のGIF趣味図をつかむので、オフラインで見やすいです。爬虫用はpython 3.3が開発したもので、主にurllib、request、Beautiful Soupモジュールを使用しています。
urllibモジュールは、マルチ次元ネットワークからデータを取得するための上位インターフェースを提供しています。私たちはurlopen()を使ってURLを開くと、Python内に建てられたopen()を使ってファイルを開くのと同じです。しかし、前者はパラメータとしてURLを受信し、オープンしたファイルストリームをseek操作できない(ベース層の観点から見ると、実際に操作しているのはsocketなので、当然seek操作はできない)。後者はローカルファイル名を受信する。
PythonのBeautiful Soupモジュールは、HTMLとXMLの解析が可能です。
まず、ウェブページの爬虫類を書いて、つまりウェブページのhtmlソースコードなどの内容をつかんで、それから分析して、相応する内容を抽出します。
このような分析)の内容の仕事は、普通の正規表現reモジュールだけで少しずつマッチすれば、内容が簡単なウェブページの分析には、まだ十分です。
しかし、仕事量が多く、内容が複雑であることを解析するために、REモジュールを使うと、実現できないことや実現しにくいことが分かります。
beautiful soupモジュールを使って、分析を実现します。)ソースの仕事をすれば、物事がこんなに简単になり、分析の効率が大幅に向上しました。
注:Beautiful Soupは第三者ライブラリです。私が使っているのはbs 4です。urllib 2はpython 3でurllib.requestに割り当てられていますが、文書の原文は以下の通りです。
Note:The urllib 2 module has been split acros several modules in Python 3 named urllib.requestand 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行目でダウンロードページ数を修正して、このファイルをbaozougif.pyとして保存します。コマンドpython baozougf.pyを使って実行したら、同じディレクトリの下で「暴走GIF」のフォルダが生成されます。すべての画像は自動的にこのディレクトリにダウンロードされます。