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)