AI工具人
提示词工程师

python爬虫爬取链家二手房信息

  一种有想做个爬虫的想法,正好上个月有足够的时间和精力就学了下scrapy,一个python开源爬虫框架。好多事开始以为很难,但真正下定决心去做的时候,才发现非常简单,scrapy我从0基础到写出第一个可用的爬虫只用了两天时间,从官网实例到我的demo,真是遇到一堆问题,通过查docs查博客,一个个问题解决下来,发现已经渐渐熟知了这个框架,真是发现带着问题去学习才是快的学习方式。

  大学的时候有用python写过爬虫,但没用什么框架,用urllib把网页源码down下来后,写一堆正则表达式来提取其中的内容,真是快吐了。所以我一直觉得爬虫网页内容解析才是最麻烦的地方,scrapy提供xpath的方式提取网页内容,大大简化了爬虫的开发。另外,我们自己实现爬虫还要去管理所有的爬取动作,你爬取完这页,你还得去触发下一页,为了防止被ban,你还要构造header头,设置爬取规则…… scrapy简化了这一切,你只需要告诉它你要爬什么,要哪些数据,数据怎么保存即可。你只需要专注于爬取结果就好了,剩下的写middleware、pipline、item…… 简单的爬虫甚至不需要这些。
  我用scrapy实现了一个爬取链家二手房的爬虫,全部源码我已经放到github上了https://github.com/xindoo/ershoufang。我需要声明的是这只是个简答的demo,存在一些问题,接下来我先说明有哪些问题,再来看看核心代码。
  

问题一

  链家网站也有反爬虫策略和robots限制,robots限制忽略(不然没法爬),另外频繁爬取会直接导致被ban,需要隔天才会解禁止。防止被ban的方法有多种,1.禁止cookie 2.设置header 3.加大爬取间隔 4.使用代理。我只用了前三种方法,具体可以在settings.py 和middlewares.py里看到。因为没有免费好用的代理,所以在爬虫实际使用中没用方法4,但我在middlewares.py里也留下了相关代码,可稍做参考,但需要注意那几个代理ip是不可用的。

问题二

  我代码里只爬取了3000套二手房价格,北京市实际在售的二手房大概有两万套,不是我不想全爬,只是链家只展示100页(3000套)的内容,排序方式我也并不清楚。我尝试通过分区域来爬取以获得更多的数据,但爬虫更容易被ban,大概爬几页后就被禁了,目前看来只能通过使用代理的方式解决。

赞(3) 打赏
未经允许不得转载:XINDOO » python爬虫爬取链家二手房信息
描述文字

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫