一、如何爬取链家网页房源信息
来源:互联网 发布:公司数据安全 编辑:程序博客网 时间:2024/04/28 19:03
由于个人安装的Python版本是2.7的,因此此后的相关代码也是该版本。
- 爬取网页所有信息
利用urllib2包来抓取网页的信息,先介绍下urllib2包的urlopen函数。
urlopen:将网页所有信息存到一个object里,我们可通过读取这个object来获得网页信息。例如,我们使用它来获取百度首页信息如下。
import urllib2f = 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 urllib2url = '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 urllib2import reurl = '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 urllib2import reurl = '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 urllib2import timeimport reprint(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库来实现房源的获取。
0 0
- 一、如何爬取链家网页房源信息
- Python爬虫1----房源信息
- 房源
- 诸葛找房房源信息爬取
- 利用python爬取我爱我家租赁房源信息
- c#信息抓取一:抓取网页源代码
- Python实现抓取网页信息(一)
- 如何识别网页中的地址信息
- 链接网房源信息redis分布式爬虫及数据可视化-武汉市
- 如何提高网页的效率(一)
- 如何提高网页加载速度?(一)
- 明源售楼系统技术解析 MVC架构与房源生成(一)
- 用HttpClient模拟登录网站一(获取网页信息)
- Python的学习(十九)--获取网页信息(一)
- 爬虫学习一 : 打开特定网页获取信息
- 如何从网页上获取城市天气信息?
- 如何通过URL获取网页中的一些信息
- Chrome浏览器如何调试移动端网页信息
- Struts
- Android实现两次点击后退键退出程序
- react 组件
- 无间道之并查集_hihoCoder
- Linux中SWAP交换分区概述
- 一、如何爬取链家网页房源信息
- UVA232 UVALive5171 POJ1888 Crossword Answers
- Git 是一个分布式版本控制工具
- One Bomb
- Android之线程池
- 写一个 ButterKnife
- Ubuntu16.04LTS 安装flash player
- s-palindrome
- linux下创建用户