使用python爬取链家上海二手房信息的案例

1、需求分析

爬取链家网上海的二手房信息,包括名称、户型、面积、价格信息,并将爬取到的信息写入到数据库中。

2、步骤分析

2.1 确定待爬取的url

https://sh.lianjia.com/ershoufang/pg

在谷歌浏览器中查看网页源代码:ctrl+shif+i,先点击图中左上角框中的按钮,再在网页中点击需要查看的内容就会定位到对应的代码。

2.2确定爬取的数据

确定爬取的名称和户型的标签为 data-el=”region”

确定爬取的二手房的价格的标签class类名:class=”totalPrice”

3、代码实现

#从urllib中导入request,接受一个Request类的实例来设置URL请求的headers
from urllib import request
#导入正则表达式模块
import re
#导入pymysql,将爬取到的数据写入mysql中
import pymysqldef HTMLspider(url,startPage,endPage):#作用:负责处理URL,分配每个URL去发送请求for page in range(startPage,endPage+1):filename="第" + str(page) + "页.html"#组合为完整的urlfullurl=url + str(page) +"/"#调用loadPage()发送请求,获取HTML页面html=loadPage(fullurl,filename)def loadPage(fullurl,filename):#下载页面 response=request.urlopen(fullurl)Html=response.read().decode('utf-8')#print(Html)#正则编译,获取名称和户型info_pattern=r'data-el="region">(.+?)</div>'info_list=re.findall(info_pattern,Html)#print(info_list)#正则编译,获取二手房价格price_pattern=r'<div class="totalPrice"><span>\d+</span>万'price_list=re.findall(price_pattern,Html)#print(price_list)dealPage(price_list,info_list,filename)def dealPage(price_list,info_list,filename):"""将服务器的响应文件保存到本地磁盘"""list1=[]list2=[]list3=[]#名称,户型,价格都是一一对应的列表格式,用for循环遍历for i in price_list:i= i[30:-8] + '万'list1.append(i)for j in info_list:j=j.replace('</a>',' '*10)local=j[:10]info=j[10:] list2.append(local)list3.append(info)for k in range(len(list1)):print(list2[k] + list3[k] + list1[k])print("正在存储"+filename)#输出横线隔开print("--"*30)connsql(list1,list2,list3)
#创建一个数据库操作对象
def connsql(list1,list2,list3):#使用pymysql获取mysql数据连接conn = pymysql.connect(host='127.0.0.1', user='root', password='950822r', db='houseinfo',charset="utf8")#获取数据操作对象cur = conn.cursor()for i in range(len(list1)):a=str(list2[i])b=str(list3[i])c=str(list1[i])#操作mysql语句sqla=("INSERT INTO  coffee(name,info,price)" " VALUES (%s,%s,%s)")#将一一对应的列表写入data字典中data=(a,b,c)#执行SQL语句B = cur.execute(sqla,data)#事物提交conn.commit()#关闭连接对象执行对象cur.close()conn.close()
#如果直接使用本文件就执行
if __name__=="__main__":#输入需要下载的起始页和终止页,注意转换成int类型startPage=int(input("请输入起始页:"))endPage=int(input("请输入终止页:"))#链接到爬虫的网页url="https://sh.lianjia.com/ershoufang/pg"#调用网页爬虫函数,传递值url,起始页和终止页HTMLspider(url,startPage,endPage)print("下载完成!")

4、执行结果

(1)控制台执行结果片段

(2)爬取的数据写到数据库的结果

使用python爬取链家上海二手房信息的案例相关推荐

  1. Python爬取链家地产二手房信息

    """ 1.爬取链家地产二手房信息 要求:使用代理进行爬取:59.58.151.34:3879 步骤:1.找URL第一页:https://yichang.lianjia. ...

  2. Python爬取链家成都二手房源信息

    作者 | 旧时晚风拂晓城 编辑 | JackTian 来源 | 杰哥的IT之旅(ID:Jake_Internet) 转载请联系授权(微信ID:Hc220066) 公众号后台回复:「成都二手房数据」,获 ...

  3. Python爬取链家成都二手房源信息,异步爬虫实战项目!

    本文先熟悉并发与并行.阻塞与非阻塞.同步与异步.多线程.多线程.协程的基本概念.再实现asyncio + aiohttp爬取链家成都二手房源信息的异步爬虫,爬取效率与多线程版进行简单测试和比较. 1. ...

  4. python爬取链家_python+scrapy爬虫(爬取链家的二手房信息)

    之前用过selenium和request爬取数据,但是感觉速度慢,然后看了下scrapy教程,准备用这个框架爬取试一下. 1.目的:通过爬取成都链家的二手房信息,主要包含小区名,小区周边环境,小区楼层 ...

  5. Python爬虫攻略(2)Selenium+多线程爬取链家网二手房信息

    申明:本文对爬取的数据仅做学习使用,请勿使用爬取的数据做任何商业活动,侵删 前戏 安装Selenium: pip install selenium 如果下载速度较慢, 推荐使用国内源: pip ins ...

  6. Python爬取链家北京租房信息

    刚学习了python,中途遇到很多问题,查了很多资料,最关键的就是要善于调试,div信息一定不要找错,下面就是我爬取租房信息的代码和运行结果: 链家的房租网站 两个导入的包 1.requests 用来 ...

  7. Python爬取链家北京租房信息!北京租房都租不起啊!

    一.效果图 二.代码 import re from fake_useragent import UserAgent from lxml import etree import asyncio impo ...

  8. Python爬取链家成都小区信息

    事先声明,本人爬虫初学者,实习时需要用到房价数据,故上阵爬虫,水平有限,若有高见,还请多多指教. 准备工具:Chrome浏览器.Python3.7.IPython notebook 爬虫流程 1.进入 ...

  9. python爬取链家新房_Python爬虫实战:爬取链家网二手房数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 买房装修,是每个人都要经历的重要事情之一.相对于新房交易市场来说,如今的二手房交易市场一点也 ...

  10. python爬取链家新房数据_Python爬虫实战:爬取链家网二手房数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 买房装修,是每个人都要经历的重要事情之一.相对于新房交易市场来说,如今的二手房交易市场一点也 ...

最新文章

  1. 编译OpenCV 2+ with CUDA 9+
  2. PHP如何识别系统语言或浏览器语言
  3. 如何捕获和分析 JavaScript Error
  4. Unit05: window 常用子对象-2 、 event 对象 、 Cookie
  5. How SAP concrete schema id is got based on transaction type plus catalog type
  6. 【Android OpenGL ES 开发 (一)】使用c++开发opengles 与 日志功能 及 加载assets
  7. 【转贴】学习Linux的几点忠告
  8. UML类与类的关系, 总算理解了关联和依赖在实际中的区别
  9. 基于matlab深度学习的水果图像识别算法
  10. 快速搭建一个直播Demo
  11. commitlint
  12. 计算机系统实验三——buflab(缓冲区实验)
  13. 搭建CA认证中心及搭建https实战
  14. 红米note9 android10,红米note9pro和红米note10pro区别
  15. 20万台空气净化机生产线商业计划书
  16. C++ undefined symbol的问题分析和解决办法
  17. 李开复给中国大学生的第四封信—大学四年应是这样度过
  18. Web安全—安全事件的分析思路详解(安全设备)
  19. 【51单片机】DAC0832制作信号发生器(方波,三角波,锯齿波)
  20. 英雄算法联盟 | 31天让你的算法与众不同

热门文章

  1. kali扫描内网ip_kali 局域网嗅探
  2. 石墨烯 量子计算机,又是石墨烯,这次对量子计算机下手了
  3. 互动快报读报软件绿色版 v5.061
  4. 凯利公式计算器安卓_华为MatePad Pro 5G评测:一屏双任务打破安卓平板生态限制...
  5. ubuntu14.04 + dlib19.2+【 C++ 】+Face Landmark Detection
  6. 联想年报有看头:供应链展现韧性,PC迎来新机遇
  7. Android应用启动画面实现
  8. 医院his系统机房服务器,医院 HIS系统建设项目 硬件部署方案.docx
  9. deepstream多路rtsp流,避免相互影响
  10. 推荐几个我喜爱的英文民谣歌手