Python爬虫案例4:爬取上海各区学校以及其对口学区房信息

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/PbGc396Dwxjb77F2je/article/details/80154982

哪个区的市重点最多,哪个区的学区房最贵?终于自己爬虫搞定这些信息了。


爬取的信息字段:

  • region_name:学校所在区域

  • school_name:学校名称

  • school_type:学校类型(小学or中学等)

  • school_level:学校等级(区重点、市重点、普通等)

  • school_advantage:学校特色

  • aver_price_m2:对应学区房均价(单价)

  • public_private:学校性质(公立or私立)

  • school_address:学校地址

  • house_onsale:在售房源数

  • xiaoqushu:对应的小区数目

  • xiaoqu:对口小区名称列表

爬取的数据如下:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

文件链接:

杨浦、徐汇、浦东

文件链接:https://pan.baidu.com/s/1-5mERlbysaxjBkBmLrawkg 密码:b9uj

闵行、宝山、松江、嘉定

文件链接:https://pan.baidu.com/s/1gAzdzrSfCT4sooEMs9EUfg 密码:m7m9


1、先建立爬虫项目

1)进入目标目录:cd 目标目录

2)建立项目:scrapy startproject 爬虫项目名称

3)进入爬虫项目目录,cd 爬虫项目所在的文件夹

4)建立爬虫:scrapy genspider 爬虫名称 网址


具体可参考豆瓣的爬虫博文。


2、编写爬虫程序

有五个注意和修改的地方:

1)编写spider程序,我的案例是spider的school.py的文件中

2)修改items.py,本程序采用ItemLoader

3)修改pipeline.py,并需要在settings.py中导入

4)编写运行爬虫的程序,我的是runspider.py

5)对应的修改settings.py:设置延迟时间、pipline类


1)爬虫文件school.py的程序,如下:主要是注意跳转下一页的用法。

主要包含三个功能:

  • 解析房子信息(xpath和正则表达式用法)

  • 如何找到具体每个房子的链接网址

  • 如何跳转下一页,并控制爬取的页码

  • 如何实现区域的跳转

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

2)修改item.py文件,注意需要在爬虫文件中导入items,本文使用的是ItemLoader,注意ItemLoader的用法。

640?wx_fmt=png

3)修改pipelines.py文件,并需要在settings.py文件中启用。

640?wx_fmt=png

4)编写运行爬虫的程序,省得每次都去cmd命令栏运行,我的是runspider.py

640?wx_fmt=png

5)对应的修改settings.py:pipline类、设置DEPTH_LIMIT

pipeline类:

640?wx_fmt=png

设置下延迟下载秒数:

640?wx_fmt=png

6)执行结果:

640?wx_fmt=png



程序链接:https://pan.baidu.com/s/1GetZH3UZZ8R6V6V1wFvdvg 密码:zmse

猜你喜欢

转载自blog.csdn.net/PbGc396Dwxjb77F2je/article/details/80154982