上海链家网二手房成交数据爬取

#  本文以浦东新区为例--其他区自行举一反三


import requests
import pandas as pd
import pprint
import csv
import pandas as pd
from bs4 import BeautifulSoup
url=‘https://sh.lianjia.com/chengjiao/{areo}/pg{page}/‘
data=[]
#定义区列表
arealist=[‘beicai‘,‘biyun‘,‘caolu‘,‘chuansha‘,‘datuanzhen‘,‘geqing‘,‘gaohang‘,‘gaodong‘,‘huamu‘,
         ‘hangtou‘,‘huinan‘,‘jinqiao‘,‘jinyang‘,‘kangqiao‘,‘lujiazui‘,‘laogangzhen‘,‘lingangxincheng‘,
         ‘lianyang‘,‘nichengzhen‘,‘nanmatou‘,‘sanlin‘,‘shibo‘,‘shuyuanzhen‘,‘tangqiao‘,‘tangzhen‘,‘waigaoqiao‘,
         ‘wanxiangzhen‘,‘weifang‘,‘xuanqiao‘,‘xinchang‘,‘yuqiao1‘,‘yangdong‘,‘yuanshen‘,‘yangjing‘,
          ‘zhangjiang‘,‘zhuqiao‘,‘zhoupu‘]
for j in range (1,101):
    for a in arealist:
        houseurl=url.format(areo=a,page=j)
        res=requests.get(houseurl)
        res.encoding=‘utf-8‘
        soup=BeautifulSoup(res.text,‘html.parser‘)
        content=soup.select(‘.info‘)
    #     print(content)
    #     print (type(content))
        for element in content:
            datum={}
            try:
                title=element.select(‘.title‘)[0].text
            except:
                title=‘‘
            try:
                houseinfo=element.select(‘.houseInfo‘)[0].text
            except:
                houseinfo=‘‘
            try:
                dealDate=element.select(‘.dealDate‘)[0].text
            except:
                houseinfo=‘‘
            try:
                positionInfo=element.select(‘.positionInfo‘)[0].text
            except:
                positionInfo=‘‘
            try:
                unitPrice=element.select(‘.unitPrice‘)[0].text
            except:
                unitPrice=‘‘
            try:
                showprice=element.select(‘.dealCycleTxt‘)[0].text
            except:
                showprice=‘‘
            try:
                totalPrice=element.select(‘.totalPrice‘)[0].text
            except:
                totalPrice=‘‘
            try:
                metroline=element.select(‘.dealHouseTxt‘)[0].text
            except:
                metroline=‘‘
            datum[‘title‘]=title
            datum[‘metroline‘]=metroline
            datum[‘houseinfo‘]=houseinfo
            datum[‘dealDate‘]=dealDate
            datum[‘positionInfo‘]=positionInfo
            datum[‘unitPrice‘]=unitPrice
            datum[‘showprice‘]=showprice
            datum[‘totalPrice‘]=totalPrice
            datum[‘page‘]=j
            datum[‘area‘]=‘pudong‘   #属于哪个区放进去
            datum[‘mingxi‘]=a        #区下面的具体街道
            data.append(datum)
#             pprint.pprint(datum)
# 保存成csv文件
df=pd.DataFrame(data)
# print(data)
df.head()
df.to_csv(‘C/Sandra/pudong.csv‘)

  爬取下来共37636条,原始数据效果如下:

原文地址:https://www.cnblogs.com/260554904html/p/9043581.html

时间: 2024-08-30 12:13:36

上海链家网二手房成交数据爬取的相关文章

链家广州二手房的数据与分析——数据分析2

继续上一篇的工作继续分析广州链家二手房的数据. Normality Test 用nortest package 的 ad.test() 分别对三个主要因素(面积,总价和均价)进行正态分布检验,结果显示这三个变量都不满足正态分布,而 Q-Q Plot 的表现方式就更直观了: 房子的面积 ad.test(house$area) #p-value < 2.2e-16 reject normality qqnorm(house$area) qqline(house$area, col = 2, lwd=

python 学习 - 爬虫入门练习 爬取链家网二手房信息

import requests from bs4 import BeautifulSoup import sqlite3 conn = sqlite3.connect("test.db") c = conn.cursor() for num in range(1,101): url = "https://cs.lianjia.com/ershoufang/pg%s/"%num headers = { 'User-Agent': 'Mozilla/5.0 (Windo

使用python抓取并分析数据—链家网(requests+BeautifulSoup)(转)

本篇文章是使用python抓取数据的第一篇,使用requests+BeautifulSoup的方法对页面进行抓取和数据提取.通过使用requests库对链家网二手房列表页进行抓取,通过BeautifulSoup对页面进行解析,并从中获取房源价格,面积,户型和关注度的数据. 准备工作 首先是开始抓取前准备工作,导入需要使用的库文件,这里主要使用的是requests和BeautifulSoup两个.Time库负责设置每次抓取的休息时间.这里并非全部,后续还会在过程中导入新的库. 抓取列表页 开始抓取

python链家网高并发异步爬虫and异步存入数据

python链家网二手房异步IO爬虫,使用asyncio.aiohttp和aiomysql 很多小伙伴初学python时都会学习到爬虫,刚入门时会使用requests.urllib这些同步的库进行单线程爬虫,速度是比较慢的,后学会用scrapy框架进行爬虫,速度很快,原因是scrapy是基于twisted多线程异步IO框架. 本例使用的asyncio也是一个异步IO框架,在python3.5以后加入了协程的关键字async,能够将协程和生成器区分开来,更加方便使用协程. 经过测试,平均1秒可以爬

Python的scrapy之爬取链家网房价信息并保存到本地

因为有在北京租房的打算,于是上网浏览了一下链家网站的房价,想将他们爬取下来,并保存到本地. 先看链家网的源码..房价信息 都保存在 ul 下的li 里面 ? 爬虫结构: ? 其中封装了一个数据库处理模块,还有一个user-agent池.. 先看mylianjia.py # -*- coding: utf-8 -*- import scrapy from ..items import LianjiaItem from scrapy.http import Request from parsel i

43.scrapy爬取链家网站二手房信息-1

首先分析:目的:采集链家网站二手房数据1.先分析一下二手房主界面信息,显示情况如下: url = https://gz.lianjia.com/ershoufang/pg1/显示总数据量为27589套,但是页面只给返回100页的数据,每页30条数据,也就是只给返回3000条数据. 2.再看一下筛选条件的情况: 100万以下(775):https://gz.lianjia.com/ershoufang/pg1p1/(p1是筛选条件参数,pg1是页面参数) 页面返回26页信息100万-120万(47

爬取链家任意城市租房数据(北京朝阳)

1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @Time : 2019-08-16 15:56 4 # @Author : Anthony 5 # @Email : [email protected] 6 # @File : 爬取链家任意城市租房数据.py 7 8 9 import requests 10 from lxml import etree 11 import time 12 import xlrd 13 import os

JAVA架构师面试分享—链家网

本月7日去了一趟链家网面试,虽然没有面上,但仍有不少收获,在此做个简单的分享,当然了主要是分享给自己,让大家见笑了.因为这次是第一次面试JAVA网站架构师相关的职位,还是有些心虚的,毕竟之前大部分时间都是在做.NET相关的技术工作,并且自己所负责过的项目规模都是比较小,并且差异也较大.在高并发性,高伸缩性的互联网网站的架构方面没有太多的经验,只是在之前空闲时阅读李智慧老师的<大型网站技术架构>一书给了我不少的启发.面试过程比较简单,首先是笔试,架构师职位主要是一些知识的理解,也有一些数据库查询

分享系列--面试JAVA架构师--链家网

本月7日去了一趟链家网面试,虽然没有面上,但仍有不少收获,在此做个简单的分享,当然了主要是分享给自己,让大家见笑了.因为这次是第一次面试JAVA网站架构师相关的职位,还是有些心虚的,毕竟之前大部分时间都是在做.NET相关的技术工作,并且自己所负责过的项目规模都是比较小,并且差异也较大.在高并发性,高伸缩性的互联网网站的架构方面没有太多的经验,只是在之前空闲时阅读李智慧老师的<大型网站技术架构>一书给了我不少的启发.面试过程比较简单,首先是笔试,架构师职位主要是一些知识的理解,也有一些数据库查询