一、如何爬取链家网页房源信息
由于个人安装的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库来实现房源的获取。
一、如何爬取链家网页房源信息相关推荐
- 如何爬取链家网页房源信息
由于个人安装的Python版本是2.7的,因此此后的相关代码也是该版本. 爬取网页所有信息 利用urllib2包来抓取网页的信息,先介绍下urllib2包的urlopen函数. urlopen:将 ...
- 如何高效地爬取链家的房源信息(四)
"Python实现的链家网站的爬虫第四部分,最后一部分." 本系列文将以链家南京站为例,使用Python实现链家二手房源信息的爬虫,将数据爬取,并存入数据库中,以便使用. 本系列第 ...
- 如何高效地爬取链家的房源信息(三)
"Python实现的链家网站的爬虫第三部分." 本系列文将以链家南京站为例,使用Python实现链家二手房源信息的爬虫,将数据爬取,并存入数据库中,以便使用. 本系列第一部分为基础 ...
- 如何高效地爬取链家的房源信息(二)
"Python实现的链家网站的爬虫第二部分." 本系列文将以链家南京站为例,使用Python实现链家二手房源信息的爬虫,将数据爬取,并存入数据库中,以便使用. 本系列第一部分: 如 ...
- python+selenium爬取链家网房源信息并保存至csv
python+selenium爬取链家网房源信息并保存至csv 抓取的信息有:房源', '详细信息', '价格','楼层', '有无电梯 import csv from selenium import ...
- python 爬虫实践 (爬取链家成交房源信息和价格)
简单介绍 pi: 简单介绍下,我们需要用到的技术,python 版本是用的pyhon3,系统环境是linux,开发工具是vscode:工具包:request 爬取页面数据,然后redis 实现数据缓存 ...
- 爬取链家所有房源信息(在售、成交、租房)
环境:Windows10+Anaconda python3.6.5+Spyder 目标:抓取链家北京地区所有房源信息. 打开链家官网 https://bj.lianjia.com/ .粗略的浏览了一下 ...
- 如何高效地爬取链家的房源信息(一)
"Python实现的链家网站的爬虫第一部分." 在之前的文章,以链家成都站为例,分析过链家网站数据的爬取,文章如下: 干货!链家二手房数据抓取及内容解析要点 但是,当时没有根据分析 ...
- 利用xpath爬取链家租房房源数据并利用pandas保存到Excel文件中
我们的需求是利用xpath爬取链家租房房源数据,并将数据通过pandas保存到Excel文件当中 下面我们看一下链家官网的房源信息(以北京为例) 如图所示,我们通过筛选得到北京租房信息 那么我们需要将 ...
最新文章
- 代码生成工具的分类及比较
- Android数据之Json解析
- apache-详细配置文件介绍+多种方式虚拟主机配置
- string matching(HDU-6629)
- hdu---1172猜数字
- 爱立信携Batelco完成巴林首次5G测试
- LINUX下载编译libav
- 微软iis服务器并发量,IIS并发连接数
- EDIUS5.5快捷键大全
- cad管线交叉怎么画_高效设计!多种方式进行管线连接、伸缩
- PW系列 | palette 体验
- 实验室设计如何搭配颜色色彩
- 解决win10访问xp服务器共享文件出现smb1问题
- B端大数据量查询优化方案
- C语言中什么叫做左值?右值?
- 【GIT】git常用命令
- 如何采用FM进行召回
- Windows下禁止exe软件运行的参考方法
- Http请求 RestfulApi请求工具类 RestfulHttpClient
- AI Multiple 力荐2022年十大开源工作流调度和 WLA工具,Apache DolphinScheduler 在列!...