爬取链家网站中的租房信息

爬取链家网站中的租房信息

信息爬取代码

import requests
from lxml import etree
import pandas as pd

with open('zufang.csv', 'a+') as fp:
    str1 = '区域' + ',' + '小区名称' + ',' + '面积(㎡)' + ',' + '户型' + ',' + '价格(元/月)'+'\n'
    fp.write(str1)
    for i in range(0,101):
        url="https://bj.lianjia.com/zufang/pg{}".format(i)
        data=requests.get(url)
        data.encoding='utf-8'
        html = etree.HTML(data.text)
        for x in range(1,31):
            place_data=html.xpath("/html/body/div[3]/div[1]/div[5]/div[1]/div[1]/div[%d]/div/p[2]/a[1]"%(x))
            park_data=html.xpath("/html/body/div[3]/div[1]/div[5]/div[1]/div[1]/div[%d]/div/p[2]/a[3]"%(x))
            area_data=html.xpath("/html/body/div[3]/div[1]/div[5]/div[1]/div[1]/div[%d]/div/p[2]/text()[5]"%(x))
            kind_data=html.xpath("/html/body/div[3]/div[1]/div[5]/div[1]/div[1]/div[%d]/div/p[2]/text()[7]"%(x))
            price_data=html.xpath("/html/body/div[3]/div[1]/div[5]/div[1]/div[1]/div[%d]/div/span/em"%(x))
            list=[]
            placelist=[]
            parklist=[]
            arealist=[]
            kindlist=[]
            pricelist=[]
            for i in place_data:
                placelist.append(i.text)
            print(placelist[0])
            for i in park_data:
                parklist.append(i.text)
            print(parklist[0])
            for i in area_data:
                arealist.append(i)
            print(arealist[0].strip())
            for i in kind_data:
                kindlist.append(i)
            print(kindlist[0].strip())
            for i in price_data:
                pricelist.append(i.text)
            print(pricelist[0])
            str=placelist[0]+','+parklist[0]+','+arealist[0].strip()+','+kindlist[0].strip()+','+pricelist[0]+'\n'
            fp.write(str)
爬取某地租房信息可以通过编写Python脚本来实现,主要使用`requests`库来发送HTTP请求,使用`BeautifulSoup`库来解析HTML内容。以下是一个简单的示例代码: ```python import requests from bs4 import BeautifulSoup import csv def get_page(url): headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' } response = requests.get(url, headers=headers) if response.status_code == 200: return response.text else: return None def parse_page(html): soup = BeautifulSoup(html, 'html.parser') house_list = soup.find_all('div', class_='content__list--item') data = [] for house in house_list: title = house.find('p', class_='content__list--item--title').get_text(strip=True) price = house.find('span', class_='content__list--item-price').get_text(strip=True) location = house.find('p', class_='content__list--item--des').get_text(strip=True) data.append([title, price, location]) return data def save_to_csv(data, filename): with open(filename, 'w', newline='', encoding='utf-8') as f: writer = csv.writer(f) writer.writerow(['标题', '价格', '位置']) writer.writerows(data) def main(): url = 'https://bj.lianjia.com/zufang/' html = get_page(url) if html: data = parse_page(html) save_to_csv(data, 'lianjia_rent.csv') print('数据已保存到 lianjia_rent.csv') else: print('请求失败') if __name__ == '__main__': main() ``` 这个脚本的主要步骤如下: 1. **发送HTTP请求**:使用`requests.get`方法获取页内容。 2. **解析HTML内容**:使用`BeautifulSoup`解析HTML,提取租房信息。 3. **保存数据**:将提取的数据保存到CSV文件中。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值