在windows下安装Scrapy,并简单抓取网页
来源:互联网 发布:直播行业现状知乎 编辑:程序博客网 时间:2024/05/21 10:57
Scrapy简介,以下摘自百度百科,
Scrapy Pthyon爬虫框架 logo[1]
1.首先,需要在windows下安装python 2.7版本,然后配置好环境变量,如下所示,这里将Scripts的路径也放到环境变量中,这样可以直接在命令行中用我们在第二步中安装的pip了;
2.安装pip,可以在https://bootstrap.pypa.io/get-pip.py这个链接上下载get-pip.py文件,然后执行python get-pip.py,这样脚本就会自动下载setuptools工具;
(pip是python的一个软件包管理工具)
3.使用命令pip install Scrapy来安装Scrapy,注意,这里可能会遇到解码错误,需要改Python27文件夹下Lib的mimetypes.py文件,大概在256行,把默认的编码方式改成gbk,代码如下,要注意python代码的缩进问题。
#default_encoding = sys.getdefaultencoding() if sys.getdefaultencoding() != "gbk": reload(sys) sys.setdefaultencoding("gbk") default_encoding = sys.getdefaultencoding()
通过以上三步Scrapy框架就搭建好了。
接下来,根据Scrapy官网上的tutorial来做一个简单的爬虫。
1.首先,进入工作目录,打开命令行,输入以下命令,来创建一个Scrapy项目;
scrapy startproject tutorial创建时,我的电脑上命令行报错,ImportError: No module named twisted,等等,缺少了许多包,于是去安装,用pip install **即可。
注意,w3lib.http module需要安装w3lib,在安装lxml时出现如下图所示的错误,可在https://pypi.python.org/pypi/lxml/2.3/这个网站上下载lxml的exe文件直接安装。
安装完成后,如下图所示,可看到目录中生成了几个文件。
2.编写item.py文件,如下图所示:
import scrapyclass TutorialItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field()title = scrapy.Field()link = scrapy.Field()desc = scrapy.Field()3.编写spider文件夹下的dmoz_spider.py文件;
import scrapyclass DmozSpider(scrapy.Spider):name = "dmoz"allowed_urls = ["dmoz.org"]start_urls = ["http://www.dmoz.org/Computers/Programming/Languages/Python/Books/", <span style="white-space:pre"></span>"http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"]def parse(self, response):filename = response.url.split("/")[-2]with open(filename, 'wb') as f:f.write(response.body)4.在tutorial目录下,执行如下的命令,即可执行简单的爬取,爬取完后,即可发现在tutorial目录下,出现了Books和Resources文件。
scrapy crawl dmoz有可能会遇到缺少win32api包的情况,去sourceforge上下载安装pywin32即可。
通过上述四个步骤,可以抓取Books和Resources文件上的所有文件信息。
可通过response的xpath()方法来提取网页HTML上的指定对象。
1.这里在items.py文件中定义好Item对象DmozItem,代码如下所示;
import scrapyclass DmozItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field()title = scrapy.Field()link = scrapy.Field()desc = scrapy.Field()
2.在dmoz_spider.py文件中,将代码修改如下,这里需要导入DmozItem类。这里通过response.xpath('//ul/li')提取出HTML页面中所有<ul>下的<li>标签,然后迭代它们,提取出链接等信息,再将它们放入item对象中。
import scrapyfrom tutorial.items import DmozItemclass DmozSpider(scrapy.Spider):name = "dmoz"allowed_urls = ["dmoz.org"]start_urls = ["http://www.dmoz.org/Computers/Programming/Languages/Python/Books/", <span style="white-space:pre"></span>"http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"]def parse(self, response):for sel in response.xpath('//ul/li'):item = DmozItem()item['title'] = sel.xpath('a/text()').extract()item['link'] = sel.xpath('a/@href').extract()item['desc'] = sel.xpath('text()').extract()yield item3.在tutorial的目录下,执行如下命令,程序执行完后,每个item对象将输出到items.json文件中,
scrapy crawl dmoz -o items.json文件如下图所示。
以上就是在Windows下安装和使用Scrapy的方法。
- 在windows下安装Scrapy,并简单抓取网页
- scrapy在windows下安装
- 在Windows下安装scrapy
- 在windows下安装scrapy
- 在Windows下安装Scrapy
- Python3在Windows下安装scrapy
- Python3在Windows下安装Scrapy
- 在Windows下 python2.7安装scrapy
- 网页抓取神器scrapy的安装搭建
- windows下安装scrapy
- Windows下安装Scrapy
- windows下 scrapy 安装
- windows下安装Scrapy
- Windows下安装scrapy
- Windows下Scrapy安装
- windows下scrapy安装
- Windows下安装Scrapy
- windows下安装scrapy
- Foxmail新建文件夹失败
- 【贪心+读题】Manthan 2011 A. Partial Teacher
- hbase表的设计
- OpenStack环境部署学习笔记——配置基本环境
- 托盘图标结构体TBBUTTON和TRAYDATA相关说明文章记录
- 在windows下安装Scrapy,并简单抓取网页
- iOS中assign、copy 、retain等关键字的含义
- Emacs的Tab键
- git常用命令
- 操作系统篇
- 【BestCoder#8】【1002】【Reading comprehension】【题解】【数列推通项】
- Sympy符号计算库
- 动态规划算法
- 数学之美笔记1