爬取链家的二手房信息,存储到数据库方便以后查看

文章目录

  • 页面分析
  • 引入库
  • 方法编写
  • 主函数编写
  • 运行结果

页面分析

分析页面后发现是前后端未分离的状态,所以需要使用xpath分析界面元素

在li中存放着对应的div,有相关的信息:

分析请求链接:

只需要更改pg后面的数字即可,页面分析完毕。


提示:以下是本篇文章正文内容,下面案例可供参考

引入库

代码如下:

from lxml import etree
from fake_useragent import UserAgent
import requests
import random
import pymysql# 代理池
proxy_pool = [{'HTTP': '175.43.151.3:9999'}, {'HTTP': '220.249.149.140:9999'}, {'HTTP': '175.44.108.206:9999'},{'HTTP': '120.83.101.115:9999'}, {'HTTP': '175.42.122.233:9999'}, {'HTTP': '60.13.42.107:9999'},{'HTTP': '113.195.152.127:9999'}, {'HTTP': '36.248.133.196:9999'}, {'HTTP': '120.83.105.95:9999'},{'HTTP': '112.111.217.160:9999'}, {'HTTP': '171.12.221.158:9999'}, {'HTTP': '113.121.72.221:9999'}]
# 伪装头
headers = {'Host': 'nj.lianjia.com','User-Agent': UserAgent().random
}
# 开启数据库
conn = pymysql.Connect(host='localhost', port=3306, user='用户名',password='数据库密码', db='对应数据库', charset='utf8')

方法编写

代码如下:

def get_page(url):# 请求页面response = requests.get(url=url, headers=headers, proxies=random.choice(proxy_pool)).text# 使用etree解析对象parse_data = etree.HTML(response)# 获取li的列表li_list = parse_data.xpath('//ul[@class="sellListContent"]/li')# 循环for li in li_list:# 标题title = li.xpath('./div[@class="info clear"]/div[@class="title"]/a/text()')[0]# 地址flood = li.xpath('./div[@class="info clear"]/div[@class="flood"]/div[@class="positionInfo"]/a[1]/text()')[0] + \'- ' + \li.xpath('./div[@class="info clear"]/div[@class="flood"]/div[@class="positionInfo"]/a[2]/text()')[0]# 房型描述address = li.xpath('./div[@class="info clear"]/div[@class="address"]/div[@class="houseInfo"]/text()')[0]# 状态followInfo = li.xpath('./div[@class="info clear"]/div[@class="followInfo"]/text()')[0]# 总价totalPrice = li.xpath('./div[@class="info clear"]/div[@class="priceInfo"]/div[@class="totalPrice"]/span[''1]/text()')[0] + '万'# 单价unitPrice = li.xpath('./div[@class="info clear"]/div[@class="priceInfo"]/div[@class="unitPrice"]/span[1]/text()')[0]# mysql数据库操作语句sql = 'insert into lianjia(title, flood, address, followInfo,totalPrice, unitPrice) ' \'values ("{}", "{}", "{}", "{}", "{}", "{}")'.format(title, flood, address, followInfo, totalPrice, unitPrice)cursor = conn.cursor()try:# 执行语句cursor.execute(sql)# 事务conn.commit()except Exception as e:print(e)# 异常则回滚,保证数据安全conn.rollback()

主函数编写

代码如下:

if __name__ == '__main__':# 数据库模板base_url = 'https://nj.lianjia.com/ershoufang/pg{}/'# 循环遍历for i in range(1, 101):get_page(base_url.format(i))print('正在存储第{}条'.format(i) + '....')# 关闭数据库链接conn.close()

运行结果


对其进行条件查找,找出自己想要的数据:

注:案例仅供学习

python爬取链家二手房信息并存储到数据库相关推荐

  1. python关于二手房的课程论文_基于python爬取链家二手房信息代码示例

    基本环境配置 python 3.6 pycharm requests parsel time 相关模块pip安装即可 确定目标网页数据 哦豁,这个价格..................看到都觉得脑阔 ...

  2. python爬取链家二手房信息

    爬取过程分析: 1.链家网url:https://bj.lianjia.com/ershoufang/pg2/ 显示的二手房信息每个url递增一 2.访问时要加头信息,否则无法访问 3.用beauti ...

  3. 租房不入坑不进坑,Python爬取链家二手房的数据,提前了解租房信息

    目录 前言 一.查找数据所在位置: 二.确定数据存放位置: 三.获取html数据: 四.解析html,提取有用数据: 前言 贫穷限制了我的想象,从大学进入到社会这么久,从刚开始的兴致勃勃,觉得钱有什么 ...

  4. python爬虫requests源码链家_python爬虫爬取链家二手房信息

    #coding=utf-8 import requests from fake_useragent import UserAgent from bs4 import BeautifulSoup imp ...

  5. python爬虫代码房-python爬虫爬取链家二手房信息

    #coding=utf-8 import requests from fake_useragent import UserAgent from bs4 import BeautifulSoup imp ...

  6. python二手房使用教程_python爬虫爬取链家二手房信息

    #coding=utf-8 import requests from fake_useragent import UserAgent from bs4 import BeautifulSoup imp ...

  7. Python 爬取链家二手房,我在北京买房的经历

    本节所讲内容: 链家网站前期分析 利用requests爬取数据 爬取数据存储MongoDB(代码请看最后) 链家网站前期分析 今天我们主要对链家二手房数据爬取,看下我们目前的资金能买那一套.链家二手房 ...

  8. python爬取链家租房信息_Python爬取链家网上海市租房信息

    使用Python进行上海市租房信息爬取,通过requests + Beautifulsoup对网页内容进行抓取和数据提取. import requests from bs4 import Beauti ...

  9. python爬取链家租房信息_python爬取链家租房之获取房屋的链接和页面的详细信息...

    因为期末考试的缘故,本打算一个星期结束的爬虫,拖了很久,不过,也有好处:之前写的时候总是被反爬,这几天复习之余写了些反爬取的py code 下面发出来和大家探讨 做了些反爬取的手段 随机获取一个hea ...

  10. python爬取携程网航班机票信息并存储到数据库中,2020年最新版本

    我们先看一下携程网的信息 从以上我们可以获取两个信息 1.我是从上海到成都的 2.7条航班信息 教你如何爬虫 我不教静态网页的爬虫,因为太简单了:我们直接上手携程网 我们到这个上述这个页面以后,我推荐 ...

最新文章

  1. AI领域为何缺乏突破?前Quora工程VP:Hinton没有说到点子上
  2. Python之PIL库的运用、GIF处理
  3. python打开figure对象_Python ——绘图 plt.figure()的使用
  4. gdb调试(如何跟踪指定进程)
  5. [导入]基于Web的B/S结构实时监控系统[转]
  6. Python之基础练习题
  7. 当云原生遇上低代码,云端开发so easy!
  8. 机器学习理论与实战:逻辑回归
  9. Windows系统好用的文本编辑器
  10. scienceWord总结
  11. 51单片机8位数码管时钟c语言,51单片机8位数码管电子时钟(完结)
  12. [渝粤教育] 江苏医药职业学院 急救护理 参考 资料
  13. 亚信安全发现勒索软件新变种Word文档成为导火索
  14. 记一次xxl-job执行器Online机器地址(注册节点)加倍问题
  15. 多线程设计模式-线程池模式
  16. 解决webservice的跨域请求问题
  17. 神经网络每次输出不一样,神经网络输出值相同
  18. Windows 8 傻瓜式安装教程
  19. mini6410 用fb显示bitmap
  20. Flink窗口迟到机制

热门文章

  1. 监控系统网络未找到dhcp服务器,监控显示未找到dhcp服务器
  2. 微信小程序画布canvas制作海报图片清晰度过低
  3. css cursor用法
  4. 微博app打开微信小程序的方法
  5. vue项目中金额小写转换为汉字大写的功能封装
  6. 路径详解(绝对路径,相对路径,根相对路径)
  7. 实用计算机技术光盘,《计算机网络技术学习宝典》教学光盘使用说明.doc
  8. 关于宇宙宿命论的一些思考
  9. MySQL数据库如何导出dbf格式数据_SQL数据库与dbf导入导出【转】
  10. 3d布衣天下1手机调试html,真精华布衣天下3d