クロールのウェブサイトを要求

1つの インポート要求
 2  から requests.exceptionsはインポートRequestException
 3  インポート4  インポートJSON
 5  
6  DEF :get_one_page(URL)
 7      試み8つの          ヘッダー= {
 9              ' のUser-Agent '' のAppleWebKit;のMozilla / 5.0(WOW64のWindows NT 6.1) / ' 
10                  + ' 535.1(ヤモリ様KHTML)クローム/ 14.0.835.163サファリ/ 535.1 ' 
11          }
 12         応答= requests.get(URL、ヘッダー= ヘッダ)
 13          response.encoding = ' 2312 ' 
14          なら response.status_codeの== 200 15              リターンresponse.text
 16          リターンなし
 17      以外RequestException:
 18          リターンなし
 19  
20  デフparse_one_page(HTML ):
 21      パターン= re.compile(
 22          " 。?。?<LI> *目標* SRC = "(*。?)" * <H2> *タイトル*> <。?。?。?(*。?) /> ' 
23          + '</ H2>。*?</ span>の<スパン>(。*?)</ span>を。*?>(。*?)</ P>。*?</ LI> " 、re.S)
 24      商品= re.findall(パターン、HTML)
 25      プリント(商品)
26      のためのアイテムアイテム:
 27          収量{
 28              ' イメージ' :項目[0]、
 29              ' タイトル':項目[1 ]、
 30              ' タイプ':項目[2 ]、
 31              ' 導入':項目[3 ]
 32          }
 33  
34  DEFwrite_to_file(コンテンツ):
 35      (オープンと' Yinghua.json '' '、符号化= ' UTF-8 ' Fとして):
 36          f.write(json.dumps(コンテンツ、偽= ensure_ascii)+ ' \ n ' 37 38 DEF メイン(ページ):
 39      NUM =(ページ- 1)* 12 + 1
 40      のURL = '××× ページ= ' + STR(ページ)+ ' ××× ' 41      HTML = get_one_page(URL)    
 42 #の印刷(HTML) 
 
     
43      のための項目parse_one_page(HTML):
 44          プリント(NUM)
 45          プリント(STR(アイテム)+ ' \ n ' )、
 46          項目= STR(NUM)+ STR(アイテム)
 47          write_to_file(アイテム)
 48          NUM + = 1
 49  
50  なら __name__ == ' __main__ ' 51      のための I における範囲(1、398 ):
 52          メイン(ページ= I)

 

おすすめ

転載: www.cnblogs.com/lonelyWMW/p/11373116.html