Python爬虫--爬取赶集网的租房信息

学习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.................')

二、注意事项

  1. 简单介绍一下csv文件

    CSV最通用的一种文件格式,以逗号分隔,它可以非常容易地被导入各种PC表格及数据库中。 此文件,一行即为数据表的一行。它是一种文本文件,可以用记事本打开。
    CSV (*.csv) 文件格式只能保存活动工作表中的单元格所显示的文本和数值。工作表中所有的数据行和字符都将保存。数据列以逗号分隔,每一行数据都以回车符结束。如果单元格中包含逗号,则该单元格中的内容以双引号引起。

  2. 简单介绍下Beautiful Soup
    Beautiful Soup是python的一个库,最主要的功能是从网页抓取数据。官方文档链接http://beautifulsoup.readthedocs.io/zh_CN/latest/
    Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。
    Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。

你可能感兴趣的:(Python学习)