由于个人安装的Python版本是2.7的,因此此后的相关代码也是该版本。

  • 爬取网页所有信息
    利用urllib2包来抓取网页的信息,先介绍下urllib2包的urlopen函数。
    urlopen:将网页所有信息存到一个object里,我们可通过读取这个object来获得网页信息。例如,我们使用它来获取百度首页信息如下。
import urllib2
f = urllib2.urlopen('http://www.baidu.com')
f.read(100)

通过上面的代码我们读取了百度首页的前100个字符:

'<!DOCTYPE html><!--STATUS OK--><html><head><meta http-equiv="content-type" content="text/html;charse'

有时可能会出现编码问题导致打开的是乱码,只需修改下编码格式即可:

f.read(100).decode('utf-8')

通过这种方法我们可以获得链家一个二手房首页的信息:

import urllib2
url = 'http://sz.lianjia.com/ershoufang/pg'
res = urllib2.urlopen(url)
content = res.read().decode('utf-8')

于是网页信息便存在了content之中。

  • 获取房源信息
    上面我们已经获得了一整个的网页信息,接下来需要获取网页中我们需要的有用信息,我们的目标是获取房源信息,方法是利用正则表达式来获取。关于正则表达式的知识可以参考一个网友的博文http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html
    首先,我们查看下网页信息:

    我们关注类似下面的这种信息
data-el="region">万科第五园一期</a> | 3室2厅 | 104.58平米 | 南 | 精装</div><
import urllib2
import re
url = 'http://sz.lianjia.com/ershoufang/pg/'
res = urllib2.urlopen(url)
content=res.read().decode('utf-8')
result = re.findall(r'>.{1,100}?</div></div><div class="flood">',content)
for i in result:print(i[0:-31].decode('utf-8'))

运行结果如下图:

这样就算是获取了我想要的信息了,不过这个信息中间有个我们不想要的符号,接下来还需要去掉这个符号(可见这种方法比较繁琐,效率也偏低)。
在这里我通过字符替换操作,用空字符来替换这个多余字符。
代码为:

import urllib2
import re
url = 'http://sz.lianjia.com/ershoufang/pg/'
res = urllib2.urlopen(url)
content=res.read().decode('utf-8')
result = re.findall(r'>.{1,100}?</div></div><div                            class="flood">',content)
for i in result:print(i[0:-31].replace('</a>','').decode('utf-8'))


上面的方法虽然帮我们获得了房源信息,但是方法还是有些繁琐,而且效率也并不高
我们利用上面的方法来爬取链家二手房100个页面房源信息,代码修改如下:

import urllib2
import time
import re
print(time.clock())
url = 'http://sz.lianjia.com/ershoufang/pg'
for x in range(101):finalUrl = url + str(x) + '/'res = urllib2.urlopen(finalUrl)content=res.read().decode('utf-8')result = re.findall(r'>.{1,100}?</div></div><div class="flood">',content)for i in result:print(i[0:-31].replace('</a>','').decode('utf-8'))
print(time.clock())

主要是测试一下运行时间,测试结果大概是350s左右(当然,主要还受网速的影响,而对代码本身来说消耗的大多数时间都在urlopen上),接下来,在下一篇中,将利用BeautifulSoup库来实现房源的获取。

一、如何爬取链家网页房源信息相关推荐

  1. 如何爬取链家网页房源信息

    由于个人安装的Python版本是2.7的,因此此后的相关代码也是该版本. 爬取网页所有信息  利用urllib2包来抓取网页的信息,先介绍下urllib2包的urlopen函数.  urlopen:将 ...

  2. 如何高效地爬取链家的房源信息(四)

    "Python实现的链家网站的爬虫第四部分,最后一部分." 本系列文将以链家南京站为例,使用Python实现链家二手房源信息的爬虫,将数据爬取,并存入数据库中,以便使用. 本系列第 ...

  3. 如何高效地爬取链家的房源信息(三)

    "Python实现的链家网站的爬虫第三部分." 本系列文将以链家南京站为例,使用Python实现链家二手房源信息的爬虫,将数据爬取,并存入数据库中,以便使用. 本系列第一部分为基础 ...

  4. 如何高效地爬取链家的房源信息(二)

    "Python实现的链家网站的爬虫第二部分." 本系列文将以链家南京站为例,使用Python实现链家二手房源信息的爬虫,将数据爬取,并存入数据库中,以便使用. 本系列第一部分: 如 ...

  5. python+selenium爬取链家网房源信息并保存至csv

    python+selenium爬取链家网房源信息并保存至csv 抓取的信息有:房源', '详细信息', '价格','楼层', '有无电梯 import csv from selenium import ...

  6. python 爬虫实践 (爬取链家成交房源信息和价格)

    简单介绍 pi: 简单介绍下,我们需要用到的技术,python 版本是用的pyhon3,系统环境是linux,开发工具是vscode:工具包:request 爬取页面数据,然后redis 实现数据缓存 ...

  7. 爬取链家所有房源信息(在售、成交、租房)

    环境:Windows10+Anaconda python3.6.5+Spyder 目标:抓取链家北京地区所有房源信息. 打开链家官网 https://bj.lianjia.com/ .粗略的浏览了一下 ...

  8. 如何高效地爬取链家的房源信息(一)

    "Python实现的链家网站的爬虫第一部分." 在之前的文章,以链家成都站为例,分析过链家网站数据的爬取,文章如下: 干货!链家二手房数据抓取及内容解析要点 但是,当时没有根据分析 ...

  9. 利用xpath爬取链家租房房源数据并利用pandas保存到Excel文件中

    我们的需求是利用xpath爬取链家租房房源数据,并将数据通过pandas保存到Excel文件当中 下面我们看一下链家官网的房源信息(以北京为例) 如图所示,我们通过筛选得到北京租房信息 那么我们需要将 ...

最新文章

  1. 代码生成工具的分类及比较
  2. Android数据之Json解析
  3. apache-详细配置文件介绍+多种方式虚拟主机配置
  4. string matching(HDU-6629)
  5. hdu---1172猜数字
  6. 爱立信携Batelco完成巴林首次5G测试
  7. LINUX下载编译libav
  8. 微软iis服务器并发量,IIS并发连接数
  9. EDIUS5.5快捷键大全
  10. cad管线交叉怎么画_高效设计!多种方式进行管线连接、伸缩
  11. PW系列 | palette 体验
  12. 实验室设计如何搭配颜色色彩
  13. 解决win10访问xp服务器共享文件出现smb1问题
  14. B端大数据量查询优化方案
  15. C语言中什么叫做左值?右值?
  16. 【GIT】git常用命令
  17. 如何采用FM进行召回
  18. Windows下禁止exe软件运行的参考方法
  19. Http请求 RestfulApi请求工具类 RestfulHttpClient
  20. AI Multiple 力荐2022年十大开源工作流调度和 WLA工具,Apache DolphinScheduler 在列!...

热门文章

  1. vue 使用i18n和i18n Ally自动化翻译
  2. 为什么选择阿里云服务器,也许是因为这个一键克隆功能
  3. Web安全测试工具WVS介绍及安装教程
  4. ppt html结构,HTML文档的基本结构.ppt
  5. 莫拉蒂致天堂里法切蒂公开信
  6. The Twenty-fourth Of Word-Day
  7. 记录一次elasticsearch的写入优化(附带python客户端、golang客户端)
  8. 松勤11期软件测试之Jmeter高级性能测试项目实战学习笔记
  9. Yhen手把手带你使用百度智能云②----文字识别
  10. SCSI、iSCSI、FC、FCoE