Python爬虫類--ネットの賃貸情報を収集します。
4822 ワード
python爬虫を勉強する時、網易雲教室の先生の簡単で深い解説を見ました。ここで私の学習総括を書きます。
一、コードに詳細な注釈を加えましたので、説明をしすぎません。具体的なコードは以下の通りです。 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解釈器となり、ユーザに異なる解析戦略または強力な速度を柔軟に提供する。
一、コードに詳細な注釈を加えましたので、説明をしすぎません。具体的なコードは以下の通りです。
#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.................')
二、注意事項