Pythonの学習モジュール登るBeautifulSoupマップ

 

BeautifulSoupモジュール学習クライミンググラフ位置決めHTMLテキストの解析ラベル
オンラインチュートリアルは、主にmzitu、抗登るこのサイトの制限などを登っています。フリーは少し遅いURLの解析速度を見つけるために。
スクリプトのプロセス:まず総ページ数を取得する- >モザイクページのURL - > URL各ページのすべてのトピックを得る- >ダウンロードに映像ソースのURLを横断、保存
  1つの のpython3は
  2  コード:UTF-8_ 
  3  _author:ジャック
  4  _DATE:2020年3月28日
  5  
  6  から BS4のインポートBeautifulSoup
   7  インポート要求、OS、SYS、時間
   8  
  9 DIR_PATH = os.path.dirname(OS .path.abspath(__FILE__ ))
 10  sys.path.append(DIR_PATH)
 11  
12  
13 HEADER = {
 14          ' のUser-Agent ''Mozilla / 5.0(Macintoshでは、インテルのMac OS X 10.15; RV:74.0)のGecko / 20100101 Firefoxの/ 74.0 ' 15        }
 16 17 デフcreate_dir(FILE_PATH):
 18 ''' 19     :PARAM FILE_PATH:images_directory
 20     :リターン:
 21 ' '' 22 の場合ではないos.path.exists(FILE_PATH):
 23         os.makedirs(FILE_PATH)
 24 プリント' Creatrディレクトリ:' 、FILE_PATH)
 25      os.chdir(FILE_PATH) CD .. 26 27 デフ  
      
       
                
 
 save_data(SRC、DIR_NAME、FILE_NAME):
 28      '' ' 
29      :PARAMのSRC:URL画像
 30      :PARAM合計:ディレクトリ名
 31      :PARAM file_nameに:画像名
 32      :リターン:
 33      ''' 
34      FILE_PATH = os.path.join (DIR_PATH、' 画像'、STR(DIR_NAME))  ディレクトリパス
35      IMAGE_PATH = os.path.join(FILE_PATH、FILE_NAME)   #1 画像経路
36      create_dir(FILE_PATH)
 37  
38      なら ないos.path.isfile(IMAGE_PATH):
 39         REQ = requests.get(SRC、ヘッダー= HEADER)
 40          オープン(IMAGE_PATHと' WB ' )f_saveとして:
 41              f_save.write(req.content)
 42              プリント' 成功したダウンロード:' 、FILE_NAME)
 43              f_save.flush( )
 44      45          プリント' ファイルが既に存在するパス!を' 46  
47  デフrequest_to_url(URL、ヘッダ):
 48      ''」
49      :PARAM URL:PAGE_URL
 50     :PARAMヘッド:request.header
 51      :リターン:respond.text
 52      '' ' 
53      RES = requests.get(URL、ヘッダー= ヘッダ)
 54      リターンres.text
 55  
56  デフスープ(URL、ヘッダ):
 57      ''' 
58      :PARAM URL:
 59      :PARAMヘッダ:
 60      :リターン:HTML_Tag
 61      '' ' 
62      リターン BeautifulSoup(request_to_url(URL、ヘッダ)、' html.parser ' 63  
64  デフアクション(URL):
 65      ''' 
66     100枚の画像の数をダウンロードして、新しいフォルダを作成する
 67      :PARAM URLを:URL
 68      :リターン:
 69      '' ' 
70      DOWNLOAD_COUNT = 0
 71      DIR_NAME = 100
 72      試し73          page_tag =スープ(URL、HEADER).find(' div要素'class_が= ' PG ').find_all(' ' 74          max_page = INT(page_tag [-2] .text.split(' ') - 1 ])
 75 76 のために I   
         範囲(1、max_page + 1):   検索ページ
77              PAGE_URL = os.path.join(URL、' ?forum.phpため=&FID = 0&ページ=%D 'I)
 78              #1 time.sleep(1)
79              page_all_theme_list =スープ(PAGE_URL、HEADER).find(' DIV '、class_が= ' kind_show ' 80              theme_list = page_all_theme_list.find_all(' DIV '、class_が= ' photo_thumb kind_left ' 81  
82              のために theme_list。    見つけるテーマ
83                  テーマ= i.find(' div要素'、class_が= ' タイトル').find(' ' 84 #1 タイトル= theme.string 85                  img_url = theme.get(' HREF ' 86 プリントレディダウンロード:%sの"%のtheme.string、img_url)
 87 time.sleep(1)88                  img_page_tag =スープ(img_url、HEADER).find(' TD '、class_が= "                 
                                  
T_F ').find_all(' IMG ' 89  
90                  のための img_page_tag:  検索画像
91                      試し92                          img_src = i.get(' SRC 93                          の場合でisinstance(DOWNLOAD_COUNT%100 、フロート):
 94                              DIR_NAME + = 100
 95                          save_data(img_src、DIR_NAME、img_src.split(' / ') - 1 ])
 96                          DOWNLOAD_COUNT + = 1
97                          プリント' :%D成功したダウンロード'DOWNLOAD_COUNT)
 98  
99                      除く:Eとして例外
 100                          プリント' Img_tag&Save_dataエラー:' 、E)
 101は                         継続
102  
103を     除き、eと例外:
 104          プリント' トランクエラー:'E)
 105 106 もし__name__ == ' __main__ ' 107 プリント' ラン..... ' 
       108      URL = ' http://www.lesb.cc/ ' 
109      アクション(URL)
 110      プリント' 実行!'
 

 

 

おすすめ

転載: www.cnblogs.com/jackron/p/12593975.html