scrapy爬虫框架安装与应用(包括post请求、递归访问http)
2017-03-06 11:24
351 查看
scrapy安装:
scrapy有几种安装方法,这里只介绍最简单实用的,在windows和linux上次方法都能够适用,安装过程如下:根据所使用系统的信息下载安装python2版本(scrapy目前只支持python2.6以上3以下的版本)对应的anaconda(https://www.continuum.io/downloads)。因为anaconda中集成了很多python包,可以免去安装很多依赖。
采用anaconda命令安装scrapy:conda install scrapy
使用命令:scrapy startproject + 项目名 , 创建一个scrapy项目
若没有报错,且在当前目录下生成了一个项目文件则安装成功。生成项目目录如下图所示,被选中的文件需要自己建立,其余为系统生成的。
简单例子测试:
为了进一步确认scrapy安装的正确性,跑一个简单的例子,在官网上有一个简单例子(http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/tutorial.html)在项目目录的spiders文件夹下面建立一个dmoz_spider.py文件,内容如下:
import scrapy class DmozSpider(scrapy.Spider): name = "dmoz" allowed_domains = ["dmoz.org"] start_urls = [ "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/", "http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/" ] def parse(self, response): filename = response.url.split("/")[-2] + '.html' with open(filename, 'wb') as f: f.write(response.body)
使用scrapy crawl dmoz启动爬虫,此时可能会报错:
出现该错误的原因是因为采用anaconda安装scrapy时安装的twisted版本过高,换成17版本以下即可!!!(当时坑了我很长时间)
若在当前目录下成功生成html文件,且包含正确的信息,则说明我们的框架安装正确且可用。
实际应用案例
在实际应用中,我们爬取的网页内容会比较复杂,包括如下几种情况:有时不是直接爬取网址上面的内容,而是需要通过Post请求并设置参数来获取想要的内容。(post请求处理)
还有些情况是要获取表单的详细信息,抓取到表单数据后,还要进一步对表单中出现的地址进行爬取,来获取详细信息。(递归爬取http)
复杂情况下html的解析(使用xpath和selector)
在一个spider中需要处理多个item时应该如何处理。
如何采用mongodb数据库进行数据的持久化。
具体解决方法及源代码可参考github:https://github.com/windwinds/scrapyProject
(若遇到其他问题可留言讨论)
相关文章推荐
- 芝麻HTTP:Python爬虫进阶之Scrapy框架安装配置
- ASIHttp框架详解(包括安装配置说明)
- Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete
- 零基础写python爬虫之爬虫框架Scrapy安装配置
- ubuntu下安装scrapy爬虫框架
- python爬虫框架Scrapy入门:安装
- Ubuntu 12.04 安装Scrapy爬虫框架
- Http 四种请求访问代码 HttpGet HttpPost HttpPut HttpDelete
- HttpUrlConnection和HttpClient和android-async-http框架的GET和POST请求
- ubuntu14.04安装python爬虫框架Scrapy
- Kali 安装scrapy爬虫框架
- linux(ubuntu12.04)安装Twisted、Scrapy爬虫框架
- Python爬虫框架Scrapy安装使用步骤
- centos6.3 安装python爬虫框架scrapy
- 使用HTTP GET 和HTTP POST请求访问HTTP资源
- 安装Twisted、Scrapy爬虫框架
- Python爬虫框架Scrapy安装使用步骤
- Python爬虫框架Scrapy实战之安装
- Kali 安装Scrapy爬虫框架
- win7安装python爬虫框架scrapy全纪录