Scrapy是一种快速的高级Web爬虫和Web抓取框架,用于抓取网站并从其页面中提取结构化数据。它可用于各种用途,从数据挖掘到监控和自动化测试。
![664d5b36d177a88b5cb1c2fc9c4829e3.png](https://i-blog.csdnimg.cn/blog_migrate/582203c44e615a454bdd8f29b4efd3dc.jpeg)
老规矩,使用前先用pip install scrapy进行安装,如果安装过程中遇到错误一般为error:Microsoft Visual C++ 14.0 is required. 只需要访问https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted网站下载Twisted-19.2.1-cp37-cp37m-win_amd64安装即可,注意cp37代表的是我本机python的版本3.7 amd64代表我的操作系统位数。
安装使用 pip install Twisted-19.2.1-cp37-cp37m-win_amd64.whl即可,然后在重新安装scrapy就会成功安装了;安装成功后我们就可以使用scrapy命令进行创建爬虫项目了。
接下来在我的桌面运行cmd命令,使用 scrapy startproject webtutorial创建项目:
![27a91f07b177669861e45a98181b6aa1.png](https://i-blog.csdnimg.cn/blog_migrate/a82aa976718b7bbcd6806170fbc3ed63.jpeg)
会在桌面生成一个webtutorial文件夹,我们看下目录结构:
![fb70c7c8f75d675279863768eb81a392.png](https://i-blog.csdnimg.cn/blog_migrate/314f0c7cf118239f3cb19365e2d4d49a.jpeg)
然后我们在spiders文件夹下新建一个quotes_spider.py,编写一个爬虫用来爬取http://quotes.toscrape.com网站保存为一个html文件,网站截图如下:
![6a67b58f147921edf0f2b0f384f64c87.png](https://i-blog.csdnimg.cn/blog_migrate/b5d4ac8eb3dc71e7e2dde38875fc313d.jpeg)
代码如下:
import scrapy#定义爬虫类class QuotesSpider(scrapy.Spider): #指定爬虫名字 一会要用到 name = "quotes" #开始请求方法 def start_requests(self): urls = [ 'http://quotes.toscrape.com/page/1/', 'http://quotes.toscrape.com/page/2/'] for url in urls: yield scrapy.Request(url=url, callback=self.parse)#解析写入返回内容到html中 def parse(self, response): page = response.url.split("/")[-2] filename = 'quotes-%s.html' % page with open(filename, 'wb') as f: f.write(response.body) self.log('Saved file %s' % filename)
之后的目录结构为:
![5a1b8fd89937d939f44757fb1d1b167a.png](https://i-blog.csdnimg.cn/blog_migrate/231f3c748150a30e2484153835ab1913.jpeg)
然后我们在命令行中切换到webtutorial文件夹下,执行命令scrapy crawl quotes进行抓取(quotes为刚才指定的爬虫名):
![0c30d7a62614db3136fdcda7de41fb45.png](https://i-blog.csdnimg.cn/blog_migrate/d7e680aa0cf8123f10afe37b2bed41a1.jpeg)
![ee309127caf1f6bf495956fdca3ef3ce.png](https://i-blog.csdnimg.cn/blog_migrate/aa7d09fdd6e4f4361ded5fc344631a3d.jpeg)
发现出错了,No module named 'win32api',这里我们安装一下win32api
使用命令 pip install pypiwin32,然后继续执行scrapy crawl quotes:
![016ab9a420d3f568371e171282111bc8.png](https://i-blog.csdnimg.cn/blog_migrate/5e6b1cc89d6bf15112d76f157b0b291a.jpeg)
可知爬虫任务成功执行,这时会在webtutorial文件夹下生成两个html:
![b316fe3d66b92a6a7c57c071bc3d89e1.png](https://i-blog.csdnimg.cn/blog_migrate/fe9da2ea6a9c7a86afd638354ad24fcf.jpeg)
至此使用scrapy的抓取网页初学结束了,下节见。
关注公号yale记
下面的是我的公众号二维码图片,欢迎关注。
![4b84ab2ebe956172f1f8635d4271c735.png](https://i-blog.csdnimg.cn/blog_migrate/aac713aaeb3e9b7b7ac3f848b377212f.jpeg)