問題が発生しました:
1.listは後にクロスボーダーのお問い合わせを追加しました
試してみてください。
:はIndexErrorを除き、
パス
シンプルなクローラ
1 インポート要求 2 からlxmlのインポートetree 。3 インポートCSV 。4 インポートOSを 5。 6。 7つの。 ファイルは自動的に本工程を作成した場合#は、CSVファイルを作成 8。(F =オープン" house3.csv "、" W +を" ) 9。 10 #CSVを構成しますオブジェクト 11 CSV_File = csv.writer(F) 12は、 13である ソースに対応#URL取得したウェブページ 14ヘッド= { 15 ' User--エージェント':' ユーザ-エージェントのMozilla / 5.0(のWindows NT 6.1; WOW64;トライデント/ 7.0; RV: 11.0)"} 16 DEFメソッドgetSource(URL): 17 18れる 。SourceHtml =リクエストがGET(URL、ヘッダー= ヘッド) 19 リターンsourceHtml.text 20である 21れる #はデータクロールおよび分析開始 22である DEF spiderData(URL): 23である RText = メソッドgetSource(URL) 24 =#パス" C://ユーザー/管理者/デスクトップ/ Picure " 25の XML形式に#の変換サーバーが返すの内容 26は、 HTML = etree.HTML(RText) 27 div_list = html.xpath(" // divの[含まれています(@class、 "リスト-JS-ヒント")] / DIV [含まれています(@class、 "F-リスト項目")] " ) 28件の #データ= [] 29 csv_file.writerow([ " 标题"、" 价格"、" 地址" ]) 30 のための項目でdiv_list: 31 32 試み: 33 34 タイトル= item.xpath(' .//dd[contains (@class、 "タイトル")] / /テキスト()')[ 0 ] 35 価格= item.xpath(' .//dd[contains(@class,"info")]/div[@class=」価格"] /スパン[クラス@ =" NUM "] /テキスト()")[ 0 ] 36 越= item.xpath(' .// DD [含まれています(@class、 "情報")] / divの[クラス@ = "価格"] /スパン[クラス@ = "越"] /テキスト()')[ 0 ] 37 、アドレス= item.xpath(' .//dd[contains(@class、 "アドレス")] // [クラス@ = "アドレスEARA"] /テキスト()')[ 0 ] 38 IMG = html.xpath(' .//div[@class="img-wrap"]//img/@src ')[ 0 ] 39 40 プリント(タイトル、価格+ 越、住所、IMG) 41 はIndexErrorを除きます: 42 パス 43 位映画のアイコンを取得します 44は、 IMG = html.xpath(' .//div[@class="img-wrap"]//img/@src '〔)0 ] 45 = R&LT要求。GET(IMG、ヘッダー= ヘッド) 46である ##に保存画像 47 F1 =オープン(" {}の.png " .format(タイトル)、" WB " ) 48 プリント(F1) 49 f1.write(r.content)#サーバ復帰に書き込まれたファイルの内容を 50 F1。閉じる() 51は 52である 試み: 53は csv_file.writerow([。タイトル、+価格越、住所、IMG]) 54のIS 除く: 55の パス 56 #1 f1.close() 57 58 59 なら __name __ == ' __main__ ' : 60 URL = " http://cs.ganji.com/zufang/b2/ " 61 62 のための I における範囲(2、5 ): 63 64 SRC = " PN " + STR(I) 65 URL = URL + SRC + " /?qq-pf-to=pcqq.group」" 66 spiderData(URL) 67 68
エンド------------ ------------コンテンツを復元