您的位置:首页 > 理论基础 > 计算机网络

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

(若遇到其他问题可留言讨论)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 爬虫