python爬虫scrapy基本使用超详细教程


Posted in Python onFebruary 20, 2021

一、介绍

官方文档:中文2.3版本

下面这张图大家应该很熟悉,很多有关scrapy框架的介绍中都会出现这张图,感兴趣的再去查询相关资料,当然学会使用scrapy才是最主要的。

python爬虫scrapy基本使用超详细教程

二、基本使用

2.1 环境安装

1.linux和mac操作系统

pip install scrapy

2.windows系统

  1. 先安装wheel:pip install wheel
  2. 下载twisted:下载地址
  3. 安装twisted:pip install Twisted‑17.1.0‑cp36‑cp36m‑win_amd64.whl(记得带后缀)
  4. pip install pywin32
  5. pip install scrapy

3.Anaconda(推荐)

在我一开始学python使用的就是python3.8,在安装各种库的时候,总会有各种报错,真的有点让人奔溃。Anaconda在安装过程中就会安装一些常用的库,其次,当我们想要安装其他库时也很方便。当然大家也可以选择安装其他的一些软件,

python爬虫scrapy基本使用超详细教程

2.2 scrapy使用流程

这里默认大家已经安装好scrapy库,大家要记得要在命令行里输入以下命令啊。(我使用的anaconda的命令行)

创建工程

scrapy startproject projectName

python爬虫scrapy基本使用超详细教程
python爬虫scrapy基本使用超详细教程

进入工程目录:这里一定要进入到刚才创建好的目录中

cd projectName

python爬虫scrapy基本使用超详细教程

创建爬虫文件:创建的爬虫文件会出现在之前创建好的spiders文件夹下

scrapy genspider spiderName www.xxx.com

python爬虫scrapy基本使用超详细教程python爬虫scrapy基本使用超详细教程

编写相关代码

执行爬虫文件

scrapy crawl spiderName

python爬虫scrapy基本使用超详细教程

2.3 文件解析

import scrapy

class HelloSpider(scrapy.Spider):
 name = 'hello' # 爬虫名称

 # 允许的域名:限定start_urls列表当中哪些url可以进行请求的发送
 # 通常情况下我们不会使用
 # allowed_domains = ['www.baidu.com'] 

 # 起始的url列表:scrapy会自动对start_urls列表中的每一个url发起请求
 # 我们可以手动添加我们需要访问的url
 start_urls = ['https://www.baidu.com/','https://www.csdn.net/']

 def parse(self, response): # 当scrapy自动向start_urls中的每一个url发起请求后,会将响应对象保存在response对象中
 # 代码一般是在parse方法中写
 print("response:",response)

python爬虫scrapy基本使用超详细教程

2.4 settings.py一些常见的设置

相当于requests中的headers参数中的User-Agent

USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36 Edg/88.0.705.68'

可以忽略或者不遵守robots协议

ROBOTSTXT_OBEY = False

只有程序出现错误的情况下,才显示日志文件,程序正常执行时只会输出我们想要的结果

LOG_LEVEL='ERROR' == scrapy crawl spiderName --nolog
//二者是等价的,当然还是推荐使用前者

未加LOG_LEVEL='ERROR'

python爬虫scrapy基本使用超详细教程

LOG_LEVEL='ERROR'之后

python爬虫scrapy基本使用超详细教程

scrapy 爬取文件保存为CSV文件中文乱码的解决办法

//下面的设置可能会导致繁体出现,可以逐个试一下
FEED_EXPORT_ENCODING = "gb18030"
FEED_EXPORT_ENCODING = "utf-8"
FEED_EXPORT_ENCODING = "gbk"

python爬虫scrapy基本使用超详细教程

三、实例

3.1 实例要求

目的:爬取百度网页的百度热榜

python爬虫scrapy基本使用超详细教程 

3.2 实例代码

实例代码

python爬虫scrapy基本使用超详细教程 

3.3 输出结果

结果

python爬虫scrapy基本使用超详细教程

到此这篇关于python爬虫scrapy基本使用超详细教程的文章就介绍到这了,更多相关python爬虫scrapy使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python私有属性和方法实例分析
Jan 15 Python
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
Aug 16 Python
python3使用scrapy生成csv文件代码示例
Dec 28 Python
python中文编码与json中文输出问题详解
Aug 24 Python
python 删除字符串中连续多个空格并保留一个的方法
Dec 22 Python
使用Python的Turtle库绘制森林的实例
Dec 18 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 Python
python实现用户名密码校验
Mar 18 Python
VSCode基础使用与VSCode调试python程序入门的图文教程
Mar 30 Python
python使用Word2Vec进行情感分析解析
Jul 31 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
Feb 01 Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Apr 07 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
Feb 20 #Python
conda安装tensorflow和conda常用命令小结
Feb 20 #Python
TensorFlow低版本代码自动升级为1.0版本
Feb 20 #Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
Feb 20 #Python
TensorFlow的环境配置与安装方法
Feb 20 #Python
python爬虫爬取某网站视频的示例代码
Feb 20 #Python
python爬虫线程池案例详解(梨视频短视频爬取)
Feb 20 #Python
You might like
PHP下用rmdir实现删除目录的三种方法小结
2008/04/20 PHP
PHP小偷程序的设计与实现方法详解
2016/10/15 PHP
PHP+Ajax异步带进度条上传文件实例
2016/11/01 PHP
PHP5.6新增加的可变函数参数用法分析
2017/08/25 PHP
php基于环形链表解决约瑟夫环问题示例
2017/11/07 PHP
PHP中PDO事务处理操作示例
2018/05/02 PHP
网页常用特效代码整理
2006/06/23 Javascript
js loading加载效果实现代码
2009/11/24 Javascript
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
Extjs入门之动态加载树代码
2010/04/09 Javascript
jquery提升性能最佳实践小结
2010/12/06 Javascript
MooBox 基于Mootools的对话框插件
2012/01/20 Javascript
JS通过ajax动态读取xml文件内容的方法
2015/03/24 Javascript
三种Node.js写文件的方式
2016/03/08 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
JQuery遍历元素的后代和同胞实现方法
2016/09/18 Javascript
vue复合组件实现注册表单功能
2017/11/06 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
JavaScript使用递归和循环实现阶乘的实例代码
2018/08/28 Javascript
react+redux仿微信聊天界面
2019/06/21 Javascript
layui table复选框禁止某几条勾选的实例
2019/09/20 Javascript
Vue自定义多选组件使用详解
2020/09/08 Javascript
[49:40]2018DOTA2亚洲邀请赛小组赛 A组加赛 TNC vs Newbee
2018/04/03 DOTA
python使用BeautifulSoup分析网页信息的方法
2015/04/04 Python
python实现发送和获取手机短信验证码
2016/01/15 Python
Python实现PS图像抽象画风效果的方法
2018/01/23 Python
python对验证码降噪的实现示例代码
2019/11/12 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
工作说明书范文
2014/05/07 职场文书
企业文化演讲稿
2014/05/20 职场文书
宣传普通话标语
2014/06/27 职场文书
先进工作者个人总结
2015/02/15 职场文书
导游词之西递宏村
2019/12/10 职场文书
Python机器学习之PCA降维算法详解
2021/05/19 Python
Python基础之进程详解
2021/05/21 Python