bs4爬取重庆链家在售二手房房源信息(总共爬取3000条)

写这篇博客两个目的,第一是总结复习最近一个月工作学习的爬虫内容,第二是给想学习python或者爬虫,但是没有python基础的童鞋们一些建议(不要怕,python是一门工具(或者是手艺),学习手艺最关键的就是做事情(写爬虫入门吧)。我是非CS出身,之前学过半年R语言,因为现在工作需要用到python,所以先学爬虫,大致了解一下python语言。

链家的网站目前是不设防的(没有反爬机制),所以爬起来是非常轻松的,也能够增加大家初学python或爬虫的信心。
准备阶段
第一步,工具准备
1.安装好python,然后我的编译器是pycharm。
2.选取爬取网站 https://cq.lianjia.com/ershoufang/
第二步,安装好需要的库,我这里是用BeautifulSoup爬取的,所以安装requests、bs4、 re、time(也可以用Xpath爬取,需要安装相应的库,time是设置访问频率的,两秒,太频繁可能禁止访问)
第三步,观察所需要爬取的网页信息


我这里筛选信息是区域:江北,然后选取区域后,最多可以显示100页,每页有房源30条,我现在是处于第二页和第三页,所以网页URL分别是是https://cq.lianjia.com/ershoufang/jiangbei/pg2/
https://cq.lianjia.com/ershoufang/jiangbei/pg3/
网页URL包含了筛选的区域即jiangbei,还有第二页pg2和第三页pg3,这就是网页URL变化的规律(如果要爬取南岸区的在售二手房房源信息,可以把jiangbei改成nanan)。

开始爬取
爬虫就是抓取网页解析的数据,然后提取自己想要的信息
1.解析网页,这里是用的是BeautifulSoup解析网页

URL = "https://cq.lianjia.com/ershoufang/jiangbei/pg2"
header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3766.400 QQBrowser/10.6.4163.400"}
res = requests.get(URL, headers=header)
soup = BeautifulSoup(res.text, "lxml")

2.我们先爬取江北第二页30条房源的标题信息(鼠标悬在所选信息上,单击右键,点检查就可以看到网页代码)

可以看到,标题信息是在div class="title"下面的,抓取第一个房源标题信息

title = soup.select(".title")[1].text

抓取第二个房源标题信息

title = soup.select(".title")[2].text

这个网页共有30条房源信息,所以只需要一个for循环就可以全部抓取

for i in range(0, 30, 1):title = soup.select(".title")[i].textprint(title)

效果如下

依旧葫芦画瓢,抓取其它剩下的房源信息(总价、单价、位置、户型、面积、朝向、装修、楼层,还有两个信息我就没有爬下来了,其实我最关心的就是单价)
链家每套房源都有自己唯一的房源编号,房源编号的信息在div class="tilte"下面能够找到
就是这串数字,提取第一套房源编号

    numbers = soup.select(".title")t = str((list(numbers))[1])number = "N" + re.findall('\d+', t)[0]

3.写一个for循环,从第一页循环到第101页
现在所有房源信息都已经提取,然后写入json就可以了。效果如下

刚好30*100=3000条房源信息
下面附上所有代码

import requests
from bs4 import BeautifulSoup
import re
import time
URL_B = "https://cq.lianjia.com/ershoufang/jiangbei/pg"
header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3766.400 QQBrowser/10.6.4163.400"}
for j in range(1,101,1):URL = URL_B+str(j)time.sleep(2)html = requests.get(URL,headers = header)soup = BeautifulSoup(html.text,"lxml")for i in range(0, 30, 1):numbers = soup.select(".title")t = str((list(numbers))[i])number = "N"+re.findall('\d+', t)[0]title = soup.select(".title")[i].texttotal = soup.select(".totalPrice")[i].textunit = soup.select(".unitPrice")[i].texthuxing = str(soup.select(".houseInfo")[i].text.split("|")[0])mianji = str(soup.select(".houseInfo")[i].text.split("|")[1])chaoxiang = str(soup.select(".houseInfo")[i].text.split("|")[2])zhuangxiu = str(soup.select(".houseInfo")[i].text.split("|")[3])louceng = str(soup.select(".houseInfo")[i].text.split("|")[4])with open(r'重庆江北二手房在售房源信息' + '.json', 'a', encoding='utf-8') as f:f.write(str({"房屋编号": number, "标题": title, "总价": total, "单价": unit, "户型": huxing,"面积": mianji,"朝向": chaoxiang,"装修":zhuangxiu,"楼层":louceng,}) + '\n')

小结
链家江北在售二手房房源远远不止3000条,只是筛选条件之后只能展示100页的信息,如果要爬更多的江北房源信心,需要将筛选条件细分,可能筛选之后的信息不会像URL中jiangbei这个参数这么明显了,可能要再filter中寻找信息,但是能够爬下来链家房源信息对于新手来讲,肯定是信心大增。但是现在网站反爬机制越来越多,比如房天下的重定向,某查查的动态网页,爬取这些网站需要更多的技巧,等以后有时间了再写怎么爬取这两个网站的。最后附上镇宇镇楼

爬虫初探:弱水三千只取一瓢,房源三千全都想要相关推荐

  1. python爬虫爬取房源_Python爬虫项目--爬取自如网房源信息

    本次爬取自如网房源信息所用到的知识点: 1. requests get请求 2. lxml解析html 3. Xpath 4. MongoDB存储 正文 1.分析目标站点 1. url: http:/ ...

  2. node 爬虫 实战 - 爬取拉勾网职位数据

    node 爬虫 实战 - 爬取拉勾网职位数据,主要想把数据用于大数据学习,到时候大数据分析可以自己分析一下职位的情况,和比较一些我现在的职位在深圳乃至全国的开发人员水平. 涉及到的技术栈:node.j ...

  3. Python异步爬虫技术:10秒抓取3000条房源信息!

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

  4. 若水三千,只取一瓢饮之

    若水三千,只取一瓢(转) 1.遇到你真正爱的人时── 要努力争取和他相伴一生的机会,因为当他离去时,一切都来不及了┅┅ 2.遇到可相信的朋友时── 要好好和他相处下去,因为在人的一生中,可遇到知己真的 ...

  5. pinctl_map:引脚三千,只取一瓢

    pinctl_map:引脚三千,只取一瓢 总体框图: pinctrl_map数组 pin group配置信息 pinctrl_map[0]:配置pin group的所有引脚复用 pinctrl_map ...

  6. Python爬虫初探(九)——爬虫之Beautifulsoup4实战(爬取豆瓣信息)

    前面两章咱们介绍了Beautifuisoup4模块的简单使用,今天就用它来爬取豆瓣信息.话不多说,咱们开始吧. 一.拿到url地址 二.获取豆瓣数据 三.保存文件 需求: 爬取标题.评分.详情页的地址 ...

  7. 爬虫实例:链家网房源数据爬取

    初接触python爬虫,跟着视频学习一些很基础的内容,小小尝试了一下,如有错误感谢指正. 库和方法介绍: (1)requests requests是python的工具包,用于发出请求,,是用来获取网站 ...

  8. python爬虫爬取安居客房源信息

    爬取安居客房源信息 Xpath插件的安装 爬取重庆花溪附近的房源信息(进入正题啦~) 梳理下逻辑 爬取数据的通用流程 代码 代码的问题 & 运行时可能出现的问题 结果 数据处理部分(写给我自己 ...

  9. python爬虫——抓取自如网房源,导出为csv

    1.抓取自如网房源,其实为了后面一个小项目做数据采集工作 2.为什么选择自如,是因为我做租房的同学说,自如网的房源质量比较高 3.因为博主是暂居深圳,就先以深圳市的房源为示例 base_url = & ...

  10. Node.js 爬虫初探

    前言 在学习慕课网视频和Cnode新手入门接触到爬虫,说是爬虫初探,其实并没有用到爬虫相关第三方类库,主要用了node.js基础模块http.网页分析工具cherrio. 使用http直接获取url路 ...

最新文章

  1. win 10升级后不能访问服务器文件夹,Win10打开某些文件夹出现“无法访问”的解决方法...
  2. Cannot complete the install because one or more required items could not be found.
  3. mxnet基础到提高(35)-ndarray
  4. 「Python-OpenCV」setMouseCallback传回选取的像素坐标
  5. 一杆台球的击球力道竟能传递35米?
  6. mysql 拷贝安装_Mysql的安装和主从复制
  7. delphi7 获取dll的类_跟我学Java内存管理----JMM精华终章(类加载器)
  8. [Vue.js] 基础 -- Vue简介
  9. NetApp集群模式Data ONTAP展露新颜
  10. hadoop相关问题-stop-all.sh
  11. python使用opencv进行身份证信息识别_基于opencv和tesseract实现身份证扫描件的身份证号码提取试验...
  12. vsCode配置vue模板一键生成
  13. 【MATLAB】遗传算法(GA)求解TSP问题
  14. 企业三层架构、冗余、STP生成树协议总结
  15. amd的cpu跑python_Windows下用cpu模式跑通目标检测py-faster-rcnn 的demo.py
  16. 数据结构——逻辑结构物理结构的区别用法
  17. Android开发——蓝牙通信实现
  18. 微信新玩法,只需三步就可以在朋友圈发送竖排文字,好看又酷炫!
  19. 博士论文致谢火了!“我走了很远的路,吃了很多的苦,才将这份博士学位论文送到你的面前”!...
  20. 可口可乐京东618直播销售额破千万;西门子医疗推出发热门诊解决方案 | 美通企业日报...

热门文章

  1. 计算机中的特殊符号是什么,电脑中特殊字符怎么打出来
  2. 解决12306登录验证码python
  3. html5的video播放腾讯视频播放器,html 5中使用video元素制作一个影片播放器
  4. SD卡和TF卡的区别/差异
  5. megui 2913 汉化版 压制特效的方法
  6. 使用python裁剪图片
  7. 二叉树由遍历确定一棵树
  8. linux局域网ip查询软件,局域网IP查询
  9. 驾驶证体检医院(114---2 挂对应的医院司机体检)
  10. 一题多解×2(流的概念+递归)