爬取‘广州链家新房’数据并以csv形式保存。

——本次的目标是爬取‘广州链家新房’前十页的信息,具体需要爬取的信息为‘楼房名字、地址、价格以及是否在售的情况’,具体的代码如下。

import requests,time
import pandas as pd
from lxml import etree
house_name = []
location_list = []
Price_list =[]
Is_it_for_sale =[]
def get_house_data():
    for i in range(1,74):
        print("正在爬取第{}页数据".format(i))
        url = 'http://gz.fang.lianjia.com/loupan/pg{}/'.format(i)
        page_taxt = requests.get(url=url).text
        #print(page_taxt)
        tree = etree.HTML(page_taxt)
        #进行属性定位
        li_list = tree.xpath('//ul[@class="resblock-list-wrapper"]/li')
        for li in li_list:
            name = li.xpath('./div/div[1]/a/text()')[0]
            location = li.xpath('.//div/div[2]/a/text()')[0]
            price = li.xpath('.//div/div[6]/div[1]/span[1]/text()')[0]
            on_sale = li.xpath('./div/div[1]/span[2]/text()')[0]
            house_name.append(name)
            location_list.append(location)
            Price_list.append(price)
            Is_it_for_sale.append(on_sale)
        time.sleep(0.1)
def save_data():
    print("————正在保存数据————")
    data = {
        '楼房名字':house_name,
        '地址':location_list,
        '价格':Price_list,
        '是否在售':Is_it_for_sale
    }
    data_all = pd.DataFrame(data)
    data_all.to_csv('data_all.csv',index=None,encoding='utf-8')
    data_all
def get_lens():
    try:
        if len(house_name) == len(location_list) == len(Price_list) == len(Is_it_for_sale):
            print("数据无误,保存成功。")
    except:
        print("数据有缺漏,请认真核查")
if __name__ == '__main__':
    get_house_data()
    save_data()
    get_lens()
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值