Python爬虫類--ネットの賃貸情報を収集します。

4822 ワード

python爬虫を勉強する時、網易雲教室の先生の簡単で深い解説を見ました。ここで私の学習総括を書きます。
一、コードに詳細な注釈を加えましたので、説明をしすぎません。具体的なコードは以下の通りです。
#coding:utf-8
from bs4 import BeautifulSoup
from urllib.parse import urljoin
import requests
import csv

URL = 'http://cc.ganji.com/fang1/'
ADDR = 'http://cc.ganji.com/'  #       ,        

if __name__ == '__main__':
    start_page = 1  #        
    end_page = 10   #     
    price = 5       #     
    #     csv  
    with open('result.csv', 'w', encoding = 'utf8') as f:
        # f file  ,delimiter = ','         
        csv_writer = csv.writer(f, delimiter = ',')
        print('start...............')
        while start_page <= end_page:
            start_page += 1
            print('get:{0}'.format(URL.format(page = start_page, price = price)))

            #     
            response = requests.get(URL.format(page = start_page, price = price))

            # BeautifulSoup(python    )     ,          html  
            #             :http://blog.csdn.net/yuzhengfei7/article/details/78191374
            html = BeautifulSoup(response.text, 'html.parser')

            #       
            house_list = html.select('.f-list > .f-list-item > .f-list-item-wrap')
            if not house_list:
                break
            for house in house_list:
                house_title = house.select('.title > a')[0].string
                house_addr = house.select('.address > .area > a')[-1].string
                house_price = house.select('.info > .price > .num')[0].string
                #          ADDR
                house_url = urljoin(ADDR, house.select('.title > a')[0]['href'])
                #    、  、   URL  result.csv
                csv_writer.writerow([house_title, house_addr, house_price, house_url])
        print('end.................')
二、注意事項
  • csvファイルCSVで最も一般的なファイルフォーマットをカンマで区切って簡単に紹介します。様々なPCテーブルとデータベースに導入されやすいです。このファイルは、1行がデータテーブルの1行です。テキストファイルです。メモ帳で開くことができます。CSV(*.csv)ファイル形式は、アクティブなシートのセルに表示されるテキストと数値のみを保存できます。シート内のすべてのデータ行と文字は保存されます。データ列はカンマで区切られています。各行のデータはリターンで終了します。コンマがセルに含まれている場合、セルの内容は二重引用符によって引き起こされます。
  • 簡単に紹介します。Beautiful Soupはpythonのライブラリで、最も主要な機能はホームページからデータを取り込むことです。公式文書リンクhttp://beautifulsoup.readthedocs.io/zh_CN/latest/Beautiful Soupは、ナビゲーション、検索、分析ツリーなどを処理するための簡単な関数を提供します。これはツールボックスです。ドキュメントを解析することによって、ユーザにキャプチャーが必要なデータを提供します。簡単なので、コードの数だけで、完全なアプリケーションが作成できます。Beautiful Soupは自動的に入力ドキュメントをUnicodeに変換し、出力ドキュメントをutf-8に変換します。エンコーディング方式を考える必要はありません。ドキュメントにエンコーディング方式が指定されていない限り、Beautiful Soupはエンコーディング方式を自動的に認識できなくなります。それから、オリジナルのコード方式を説明するだけでいいです。Beautiful Soupは、lxml、httml 6 libと同様の優れたpython解釈器となり、ユーザに異なる解析戦略または強力な速度を柔軟に提供する。