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 プリント(' 実行!')