Scrapy创建
目录
1.scrapy框架简介
2.安装scrapy
3.创建scrapy项目
4.运行scrapy项目以及修改scrapy项目的基本配置
一、scrapy框架简介
Scrapy框架:
框架:是一个集成了众多功能并具有高度通用性的项目模板。它提供了一个标准化的结构,使得开发者可以基于这个结构快速构建和扩展自己的爬虫项目。
强大的Python网络异步爬虫框架:Scrapy是一个专门为Python编写的网络爬虫框架,它支持异步非阻塞的IO操作,能够高效地处理大规模的网页抓取任务。通过Scrapy,开发者可以轻松实现网页数据的抓取、解析、存储和后续处理。
二、安装scrapy
pip install scrapy
安装好了以后, 需要查看下Scrapy, Twisted的版本
pip list
我们可以看到, scrapy版本是2.12.0, Twisted版本是24.11.0, 这里我们需要降Twisted版本号, 不然的话, 之后运行scrapy程序的时候, 会莫名其妙的报错。
我们需要把Twisted版本号降到22.10.0, 需要先卸载之前的Twisted再安装新的Twisted(版本号为22.10.0):
pip uninstall Twisted
pip install Twisted==22.10.0
最后再查看下scrapy和twisted版本号:
pip list
三、创建scrapy项目
我们先找到我们python项目的对应目录下(我的是在crawler目录下):
然后输入命令(scrapy startproject 项目名):
scrapy startproject scrapy16
然后进入scrapy16:
cd scrapy16
然后再输入命令:(scrapy genspider 爬虫名 爬虫名.com):
scrapy genspider baidu baidu.com
执行完命令之后, 会在scrapy项目下面出现baidu.py文件, 点进去。
点进去之后的代码:
import scrapyclass BaiduSpider(scrapy.Spider):name = "baidu"allowed_domains = ["baidu.com"]start_urls = ["https://baidu.com"]def parse(self, response):pass
我们假如说是返回一个请求百度网站的内容, 那我们可以把parse函数里面的pass改为输出响应内容:
import scrapyclass BaiduSpider(scrapy.Spider):name = "baidu"allowed_domains = ["baidu.com"]start_urls = ["https://baidu.com"]def parse(self, response):print(response)
到这里, 我们项目创建完成。
四、运行scrapy项目以及修改scrapy项目的基本配置
我们先打开配置文件, settings.py:
找到ROBOTSTXT_OBEY, 将它改为False, 然后在代码里面添加一行LOG_LEVEL = ‘ERROR’, 就配置完成了。
如图:
最后, 我们再去启动项目。
再控制台输入(scrapy crawl 爬虫名):
scrapy crawl baidu
直到在控制台里面出现<200 http://www.baidu.com/>, 就算成功了。
如果不在配置文件修改ROBOTSTXT_OBEY, 将它改为False的话, 那scrapy项目就没有办法进行爬虫, 如果没有添加一行LOG_LEVEL = 'ERROR’的话, LOG_LEVEL默认是INFO, 那将来在控制台里面会有很多信息干扰, 所以干脆直接设置为ERROR, 就是当程序错误的时候, 才会在控制台输出相关信息。
以上就是Scrapy创建的所有内容了, 如果有哪里不懂的地方,可以把问题打在评论区, 欢迎大家在评论区交流!!!
如果我有写错的地方, 望大家指正, 也可以联系我, 让我们一起努力, 继续不断的进步.
学习是个漫长的过程, 需要我们不断的去学习并掌握消化知识点, 有不懂或概念模糊不理解的情况下,一定要赶紧的解决问题, 否则问题只会越来越多, 漏洞也就越老越大.
人生路漫漫, 白鹭常相伴!!!