BIG+碧家国际社区集中式公寓项目爬取

  • 背景
  • 代码
  • 代码解读
  • 结果截图
  • 免责声明

背景

研究组对于集中式公寓项目的数据需求源源不断,这不又需要BIG+碧家国际社区集中式公寓项目在全国各城市的项目名称,起始租金,剩余房源数以及详细地址,话不多说,代码见。

代码

# -*- coding: utf-8 -*-
"""
project_name:big+
@author: 帅帅de三叔
Created on Tue Sep 17 09:21:15 2019
"""
import requests #导入网页请求模块
from bs4 import BeautifulSoup #导入网页解析模块
import re #导入正则模块import pymysql #导入数据框接口模块
db=pymysql.Connect("localhost","root","123456","big",charset="UTF8MB4") #li按揭数据框
cursor=db.cursor() #获取操作数据框的游标
cursor.execute("drop table if exists  big_") #以重新写入的方式写入数据库
c_sql="""create table big_(city varchar(6),project_name varchar(20),start_price float(10),remaining_room_num int(4),address varchar(40))Engine=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=UTF8MB4"""
cursor.execute(c_sql) #创建表big_header={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36"} #构造请求头def spider(url,city): #定义爬虫函数response=requests.get(url,headers=header,timeout=30)response.encoding="UTF8MB4" #UTF-8编码soup=BeautifulSoup(response.text,'lxml') project_list=soup.find("div",class_="list").findAll("dl") #找出所有的项目列表#print(project_list[0])for project in project_list: city=cityproject_name=project.find("div",class_="detail-item3 f-ib").find("h2").get_text() #项目名称start_price=project.find("div",class_="detail-item4 f-fr f-tac").find("p").find("b").get_text().replace("¥","") #起始价格pattern=re.compile("\d+") #用以匹配数字remaining_room_num=int(re.search(pattern, project.find("div",class_="detail-item3 f-ib").find("s").get_text()).group(0)) #剩余房间数address=project.find("div",class_="detail-item3 f-ib").find("p").get_text() #地址print(city,project_name,start_price,remaining_room_num,address)insert_factor=("insert into big_(city,project_name,start_price,remaining_room_num,address)""values(%s,%s,%s,%s,%s)") #控制插入格式insert_data=([city,project_name,start_price,remaining_room_num,address]) #待插入数据cursor.execute(insert_factor,insert_data) #执行数据库的插入操作db.commit()if __name__=="__main__":city_list=["bj","tj","sh","hz","xm","wh","cs","gz","sz","zq","dg","zq"] #构造城市简称列表city_name=["北京市","天津市","上海市","杭州市","厦门市","武汉市","长沙市","广州市","深圳市","肇庆市","东莞市","重庆市"] #构造城市中文名用以填补城市字段start_url=["http://www.bgy-bigplus.com/{}/{}-all.html".format(city,city) for city in city_list] #构造起始网址列表for index,url in enumerate(start_url):print("起始网址:",url)spider(url,city_name[index])

代码解读


由于只要爬取项目一些相关信息,不需要进入项目里面的房源爬取,故在设计的时候只需要对各个城市的起始网页进行请求,获取各项目的表面信息,而且各城市的项目数不多,没有翻页的操作,最后把构造的城市列表匹配到项目名称的前面一个字段。原网页设计的时候肇庆市和重庆市未分开,在爬取的时候会默认进入重庆市,会导致肇庆市的项目漏爬,可以人工补上,写入数据库截图如下。

结果截图

免责声明

Python爬虫仅为学习交流,如有冒犯,请告知删。

延申阅读
青客公寓挂牌房源分城市爬取
优客逸家挂牌房源爬取
建方公寓挂牌房源信息爬取
江寓租房挂牌房源信息爬取
通过关键词获取微博内容
家长帮分板块爬取

BIG+碧家国际社区集中式公寓项目爬取相关推荐

  1. 为perf4j提供集中式监控项目perf4j-dashboard

    perf4j Perf4J 是一个开放源码的性能记录,监测和分析库,主要用于企业Java应用程序. perf4j-zh 是修改部分perf4j源码并加入集中式机器集群监控图表,使perf4j能够被更多 ...

  2. python爬取链家新房_Python爬虫项目--爬取链家热门城市新房

    本次实战是利用爬虫爬取链家的新房(声明: 内容仅用于学习交流, 请勿用作商业用途) 环境 win8, python 3.7, pycharm 正文 1. 目标网站分析 通过分析, 找出相关url, 确 ...

  3. Python 小项目 01 爬虫项目 爬取链家网南京地区二手房信息

    SpiderLianjia 介绍 python爬虫小程序,爬取链家网南京地区普通住宅二手房数据. 代码下载: https://gitee.com/lihaogn/SpiderLianjia 1 程序设 ...

  4. 大数据项目开发hadoop集群搭建 python爬取前程无忧招聘网信息以及进行数据分析和数据可视化

    大数据项目开发实训报告 一.Hadoop环境搭建 1: jdk的安装 1):在linux系统下的opt目录下创建software 和 module 两个目录 2):利用filezilla工具将 jdk ...

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

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

  6. python爬取链家房价消息_Python的scrapy之爬取链家网房价信息并保存到本地

    因为有在北京租房的打算,于是上网浏览了一下链家网站的房价,想将他们爬取下来,并保存到本地. 先看链家网的源码..房价信息 都保存在 ul 下的li 里面 ​ 爬虫结构: ​ 其中封装了一个数据库处理模 ...

  7. 链家网开源java_异步协程爬取链家租房信息

    异步协程抓取链家数据+pandas写入csv import asyncio import aiohttp import pandas from bs4 import BeautifulSoup fro ...

  8. go爬虫和python爬虫哪个好_python 爬虫实战项目--爬取京东商品信息(价格、优惠、排名、好评率等)-Go语言中文社区...

    利用splash爬取京东商品信息 一.环境 window7 python3.5 pycharm scrapy scrapy-splash MySQL 二.简介 为了体验scrapy-splash 的动 ...

  9. 【Python爬虫练习】虎扑社区步行街版块首页信息爬取(BeautifulSoup+MongoDB)

    严正声明:爬虫仅用于学习研究,不做商业或者其它非法用途! 首先我们要爬取的网页地址为:https://bbs.hupu.com/bxj 页面的样子是这样的: 红色圈出来的部分就是我们所要爬取的内容信息 ...

最新文章

  1. sqlite只能用于android系统,Android 数据库的使用 -- Sqlite
  2. 一、ESP32环境搭建(基于vscode插件platformIO)
  3. python动态表情包下载_Python从eif中导出qq表情的gif图片
  4. USACO-Section2.1 Ordered Fractions(简单数据处理)
  5. 排查 CI Unable to load the requested file
  6. Android开发笔记(八十三)多语言支持
  7. 数据库选项--自动更新统计
  8. 1以下数字Oracle打印缺少0,Oracle SQL中缺少關鍵字
  9. AutoItLibrary
  10. 软考网络工程师笔记-分值分布
  11. 测试远程服务器udp端口,udp端口怎么测试 - 全文
  12. 如何增加(软件测试)自动化测试面试成功率?只需学会主流设计模式PO+关键字驱动!
  13. 网络工程师工作经验分享
  14. 检测周转时间 TAT :TURN-AROUND TIME
  15. Supercell:靠两款手游如何做到30亿美金市值?
  16. Unity (一) 下载与安装
  17. 第二章 关系模型和关系运算理论 3类完整性
  18. 程序员之间的战争,某宁测试和开发干架,鼠标线勒脖子都来了!
  19. Win2008 R2安装域报错
  20. js视频背景切换js特效代码

热门文章

  1. Android EditText只能输入中文
  2. MySQL基础总结(上)
  3. TextRank算法学习及使用
  4. VS C1001错误可能的解决方案
  5. VGPNN 笔记(单视频多样化编辑,视频类比)
  6. php apidoc,ApiDoc的使用
  7. 做后台是选择Java 、Go ,还是 PHP?
  8. 人工智能AI常用的库有哪些?
  9. 二叉树深度优先遍历-递归实现
  10. C++中的String的常用函数用法总结