爬取居里新家
https://sh.julive.com/project/s这是上海居里新家的网址
现在打算爬取房子名称,房子名称,房子类型,房子面积,房子均价,房子总价
别的不多说,现在开始写代码吧
import requests from lxml import etree import pandas as pd
三个库requests获取请求,lxml解析网页,pandas保存数据
xpath的用法请看添加链接描述
url="https://sh.julive.com/project/s"
response = requests.get(url)#请求网页
html = etree.HTML(response.text)#获取网页源代码
data=[['房子','地区','房屋','面积','售价','总价']]
all_content = html.xpath("//div[@class='house-list']/div[@class='house-item main_click_total']")
for info in all_content
#获取房子名称的列表
name_list=info.xpath("./div[@class='house-des']/div[@class='des-area']/div[@class='des-info']/h4[@class='title']/a[@class='name project-card-item']/text()")
name="\n".join(name_list)
#获取房子地址的列表
location_list=info.xpath("./div[@class='house-des']/div[@class='des-area']/div[@class='des-info']/div[@class='position project-card-position project-card- item']/span[@class='position-des']/a/text()")
location="\n".join(location_list)
#获取房子类型的列表
housetype_list=info.xpath("./div[@class='house-des']/div[@class='des-area']/div[@class='des-info']/div[@class='house-type']/div/a/text()")
housetype="\n".join(housetype_list)
#获取房子面积的列表
area_list=info.xpath("./div[@class='house-des']/div[@class='des-area']/div[@class='des-info']/div[@class='house-type']/span/a/text()")
area="\n".join(area_list)
#获取房子均价的列表
price_list=info.xpath("./div[@class='house-price']/div/div[@class='total-price ']/span[@class='number']/text()")
price="\n".join(price_list)
#获取房子总价的列表
totalprice_list=info.xpath("./div[@class='house-price']/div/div[@class='developer']/span[@class='number']/text()")
totalprice="\n".join(totalprice_list)
house_info=[
name,
location,
housetype,
area,
price,
totalprice
]
data.append(house_info)
pd.DataFrame(data).to_csv('D:\\house\\house.csv',index=None,header=None)
#"".join()就是把数组中的所有元素放入一个字符串 “”引号中可以任意写要对字符串的处理,比如“\n”换行 ,“ ”将字符串用空格隔开
#data=[['房子','地区','房屋','面积','售价','总价']]
house_info=[
name,
location,
housetype,
area,
price,
totalprice
]
data.append(house_info)
pd.DataFrame(data).to_csv('D:\\house\\house.csv',index=None,header=None)
这是将数据保存至csv文件中
这就是爬下来的数据
当然这个代码还有很多缺点,比如现在只爬了一页,有些过长的数据会显示不全(以上的数据是我后来的代码运行保存的)
后续将更新代码,请大家继续关注