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 scrapyclass 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 (若遇到其他问题可留言讨论)
新闻热点
疑难解答