今天小五给大家分享一篇爬虫:
1、前言
随着人们生活方式的的提高,房子成为了我们必不可少的一部分。而网上的信息太过于复杂,为了了解最近房价的变化趋势。小编以链家这个网站为例,抓取房价的信息。
![8917d3e0e3fec7b3f9cbdc6eeae7f54d.png](https://i-blog.csdnimg.cn/blog_migrate/dcf6511c8a839a2d9c68d58f36dcbb7d.png)
2、项目目标
实现将获取到的房子的名字、价格、房子的关注度,导入Word模板,并生成独立的Word文档。
3、涉及的库和网站
先列出网址,如下所示。
网址:https://bj.lianjia.com/ershoufang/pg1/("bj"北京的缩写)
库:requests、time 、lxml
4、具体分析
如何对下一页的网址进行请求?
点击下一页的按钮,观察到网站的变化分别如下:
https://bj.lianjia.com/ershoufang/pg1/
https://bj.lianjia.com/ershoufang/pg2/
https://bj.lianjia.com/ershoufang/pg3/
观察到只有pg()变化,变化的部分用{}格式化代替,再用for循环遍历这网址,实现多个网址请求。
5、实现步骤
1.我们定义一个class类继承object,然后定义init方法继承self,再定义一个主函数main继承self。准备url地址和请求头headers。
import requests
2.对网站发生请求
def __init__(self):
- 对请求到的数据进行处理
# 数据处理
在谷歌浏览器上,进行右键选择开发者工具或者按下键盘的F12,如下图所示。
右键检查,找到房价的链接,如下图所示。
![9b6f03d6cd2dd2df5aee5ca1145737fe.png](https://i-blog.csdnimg.cn/blog_migrate/6ce5086c78535bdc2e96cd8d8fb87218.png)
- 将获取的信息写入word文档
'房子.doc',
- 在main方法调用
def main(self):
6、效果展示
- 点击绿色按钮运行,将结果显示在控制台,如下图所示。
![f63f42b0f70a852e17829c07db3dbfab.png](https://i-blog.csdnimg.cn/blog_migrate/4ee91145f2bcd3de84fa520486261f75.png)
- 保存在一个名为“房子”world文档里,如下图所示。
![c54a8984a5b7ea38b0faaf346c9e499a.png](https://i-blog.csdnimg.cn/blog_migrate/34c1a29c43cb67a004e3b0679a6435a7.png)
7、小结
- 不建议抓取太多数据,容易对服务器造成负载,浅尝辄止即可。
- 希望通过这个项目,能够帮助大家更好的了解房价的趋势。
- 本文基于Python网络爬虫,利用爬虫库,实现链家网部分房价信息的抓取。就Python爬取链家的房产信息中的一些难点, 进行详细的讲解和提供有效的解决方案。
- 欢迎大家积极尝试,有时候看到别人实现起来很简单,但是到自己动手实现的时候,总会有各种各样的问题,切勿眼高手低,勤动手,才可以理解的更加深刻。
- 如果本文源码的小伙伴,网页打开链接即可下载:https://alltodata.cowtransfer.com/s/905991eb4fb441
本文转自公众号【Python爬虫与数据挖掘】
由朱小五重新排版整理
![730cebce858a27f264eca2159877cffb.png](https://i-blog.csdnimg.cn/blog_migrate/161b69121c0e9d8b31a4225326740480.jpeg)
![6491999eba92167b9501453ecfdb043a.png](https://i-blog.csdnimg.cn/blog_migrate/733f12a36b91b3ea91a4add8747dc5e6.jpeg)