scrapy+beautifulsoup+mongo数据库简单爬虫——利用搜索关键词爬取百度百科城市地理信息
来源:互联网 发布:pxe网络装机 编辑:程序博客网 时间:2024/06/05 19:47
本文中的内容和代码参考了以下:
http://blog.csdn.net/u010454729/article/details/50900716
http://cuiqingcai.com/912.html
http://zqdevres.qiniucdn.com/data/20160426130231/index.html
本文主要内容是scrapy+beautifulsoup+mongo数据库,快速搭建简单爬虫——利用搜索关键词爬取百度百科城市地理信息,并将结果存入mongo数据库中 。
scrapy是python语言的一个爬虫框架,利用scrapy可以快速的搭建一个爬虫,我们只需要根据自己的需要做一些小的修改就可以爬取信息了。scrapy还支持多线程、分布式。beautifulsoup是用来解析网页的。这里介绍一下利用scrapy写简单爬虫的过程,不涉及多线程和分布式这些内容。
首先安装scrapy
pip install scrapy即可
安装完成后,可以使用pip list 查看一下,如果在显示的列表里面看到scrapy即表示安装成功了,下面就可以开始写爬虫了。
第一步是构建爬虫工程
scrapy startproject tutorial
最后一个是工程的名字,这里是tutorial。可以发现scrapy自动创建了一个tutorial的文件夹,里面已经有一些文件了。我们需要对这些文件进行一些修改就可以了。
第二步在tutorial\目录下的items.py中定义我们要抓取信息的格式。例如我希望抓取百度百科的某个城市页面中的城市名字、位置、气候三个信息。那么items.py中可以写成如下:
第三步在 tutorial\spiders目录下新建自己的爬虫文件,文件名字可以随意(例如我新建的Baike.py),因为scrapy执行的时候是认的文件内设置的name.Baike.py文件中定义了一个爬虫类,类中有两个主要方法,start_requests(self)和parse(self,response)。start_requests(self)方法里放置你要爬取的网址,parse方法里是对爬取到的网页内容解析。在parse方法中会用到之前定义的item,这里需要在文件开头引入定义好的item才可以使用,引用语句是from your_roject_name.items importyour_item。我这里使用了beautifulsoup对网页内容定位和提取,常用的还有xpath等。百度百科的页面比较乱,这里我的处理也比较繁琐,基本思路是先找到页面中的目录,然后根据目录的层级关系提取地理目录下的子目录。提取时,从地理目录开始,如果遇到下一个1级目录则结束。需要注意的是,parse函数中是可以定义将提取到的内容写入文件等操作,但不是必须的。还可以在pipline.py中对提取结果进行处理 。Baike.py详细代码如下:
第四步介绍一下piplines.py.这个文件位于tutorial目录下,这里面是对提取结果的操作,可以将提取到的结果保存到json中写入文件,也可以链接数据库将结果写入数据库,我这里是链接mongo数据库,将结果写入mongo数据库中。这里要求本机装了mongo数据库并且已经运行,如果没有安装数据库的话可以将链接数据库的部分注释掉再运行。piplines详细代码如下:
第五步在settings.py中进行一些设置。settings.py详细代码如下:
第六步,现在爬虫已经写好了 执行 scrapy crawl baike
爬虫就可以工作了。抓取到的城市地理信息如下:
- scrapy+beautifulsoup+mongo数据库简单爬虫——利用搜索关键词爬取百度百科城市地理信息
- 简单爬虫——爬取百度百科总结
- 简单的python爬虫(爬取百度百科词条)
- Python 简单爬虫实现(爬取百度百科信息)
- python3.6.2实现的简单爬虫爬取百度百科
- 简单爬虫-爬取百度百科1000个页面
- 简单的爬虫----爬取百度百科练习
- 爬取百度百科[scrapy启发]
- 利用Scrapy爬取糗事百科段子
- Python爬虫_BeautifulSoup爬取百度百科
- Python爬虫,爬取百度百科词条
- Python爬虫爬取百度百科词条
- Python爬取百度百科,BeautifulSoup提取关键信息
- Python3爬虫之四简单爬虫架构【爬取百度百科python词条网页】
- BeautifulSoup简单爬取百度贴吧
- python 爬虫——针对query爬取百度百科页面
- 00_python爬虫——爬取百度百科字条(学自慕课网)
- python3.5简单爬虫爬取百度百科(参考imooc实战)
- java导出文件之Excel(Poi)上
- FreeSwitch中的录像功能和播放录像功能
- tomcat内存扩大
- Haar特征与积分图(Adaboost方法原理介绍,非常经典)
- Git 版本控制器使用指南-II(远程代码控制)
- scrapy+beautifulsoup+mongo数据库简单爬虫——利用搜索关键词爬取百度百科城市地理信息
- 前端学习
- Ext.Window点击右上角关闭(X按钮)添加监听事件
- 使用VideoView播放视频,锁屏暂停播放之后,过一会自动播放,而且可以通过滑动屏幕调节音量。。。
- iOS开发技巧之:父子控制器
- jQuery获取select元素option的文本值和value值
- BIOS学习笔记
- Ubuntu14.04安装QQ
- android AsyncTask介绍