Python初期探索
- 软件的安装,给我们造成了痛苦的回忆。因为我们没有按照默认的安装位置安装Python,导致中断安装插件的pip不起作用,一直失败。
- 在安装BeautifulSoup4插件的时候,一直报错,不停的重连。结果大概是校园网的问题,换了手机热点之后就解决了。
- 在准备做爬虫的时候,我们在网上找了好多用Python爬取二手房的例子。但是很难下手。
- 无意中在简书中看到一个Pyhon交流群,便加入了其中。但是由于他是一个如何学习Python的,我们学习爬取二手房的进度很慢。
- 于是我们选择改变想法,偶然的机会,我在51cto中看到一个关于Python爬虫的视频,他讲解的是如何建立一个通用的爬取二手房数据的爬虫代码。
Python中期探索
- 因为这个视频是如此的优秀,所以我们学习的很快。
- 我们是主要利用requests,BeautifulSoup获取网页,解析网页。再通过select解析器获取我们想要的内容,有的用来拼接url,有的是我们需要的数据。最后将我们想要的数据封装到一个字典中。再将字典中的数据传入到我们构造的pandas库的DataFrame对象里面。由于DataFrame里面提供了许多关于文件方面的操作。所以我们很容易将其写入csv文件中,在写入时添加
encoding='utf_8_sig'
防止文件乱码。由于爬取过程中会遇到异常导致导致代码结束,所以我们使用try...except捕获异常,让代码可以运行下去。 - 在写代码以及调试的过程中,暴力调试的方法帮助了我们很多。通过打印的数据,我们很容易理解相关代码。
Python后期探索
- 虽然在学习过程中,我们有听说过反爬机制。但是在我们实际运行时,起初没有发现发反爬机制。但是,在输出大量数据的时候,数据爬着爬着就无法爬取了。
- 由于第一次我出现了http之类的连接错误,我一直以为是我的电脑由于过度访问网站,导致被视为爬虫,被封了ip。
- 所以,我们弄了一个函数用于随机产生一个ip,弄了一个函数用于随机产生一个header来模拟浏览器。在没爬取一个数据后睡眠一段时间。但是还是会出现数据爬取突然代码结束的现象。
- 偶然的机会点进了输出的一个url中,发现网站要求我们输入验证码。原来该网站是通过要求访问者输入验证码来检测访问者是用户还是爬虫。由于一直没有找到所有验证码的图片在哪和时间的紧急,我们通过拆分我们的代码将其变成爬取一个一个区域的代码。将我们的代码给组内的每个人员,大家一起爬取,最终解决问题。
主要困难
- python环境配置,相关插件下载。
- 爬取二手房的入门,如何学习
- 如何构建代码,如何调试改错
- 反爬技术的克服
解决方法
- 不停的百度,在网上学习
- 最终在51cto中找到关于构建通用二手房数据爬取的代码的视频,进行详细学习
- 构建随机产生一个header的函数,随机产生一个ip的函数,每爬取一个数据都随机睡眠一会儿
优点
- 通用的二手房爬取代码,只需要改变select里面内容,和url的内容就可以。
缺陷
- 数据爬取过多随机验证码的问题没有解决。