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 相关文章推荐
vc6编写python扩展的方法分享
Jan 17 Python
python读写ini文件示例(python读写文件)
Mar 25 Python
Python中的map、reduce和filter浅析
Apr 26 Python
Python中动态获取对象的属性和方法的教程
Apr 09 Python
python机器学习之神经网络(三)
Dec 20 Python
python2.x实现人民币转大写人民币
Jun 20 Python
python字符串和常用数据结构知识总结
May 21 Python
django云端留言板实例详解
Jul 22 Python
Python sorted排序方法如何实现
Mar 31 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
Sep 26 Python
TensorFlow2.0使用keras训练模型的实现
Feb 20 Python
浅谈Python数学建模之线性规划
Jun 23 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
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
详解php魔术方法(Magic methods)的使用方法
2016/02/14 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
JavaScript字符集编码与解码详谈
2017/02/02 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
2017/04/21 Javascript
Javascript ES6中对象类型Sets的介绍与使用详解
2017/07/17 Javascript
vue-router2.0 组件之间传参及获取动态参数的方法
2017/11/10 Javascript
gulp安装以及打包合并的方法教程
2017/11/19 Javascript
Vue.js单向绑定和双向绑定实例分析
2018/08/14 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
2019/09/20 Javascript
利用vue3+ts实现管理后台(增删改查)
2020/10/30 Javascript
详解python 发送邮件实例代码
2016/12/22 Python
python 根据pid杀死相应进程的方法
2017/01/16 Python
python 统计代码行数简单实例
2017/05/04 Python
Request的中断和ErrorHandler实例解析
2018/02/12 Python
Python实现基于C/S架构的聊天室功能详解
2018/07/07 Python
浅谈Python的list中的选取范围
2018/11/12 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
2018/11/21 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
html5 音乐播放器 audio 标签使用概述
2013/07/15 HTML / CSS
利用Storage Event实现页面间通信的示例代码
2018/07/26 HTML / CSS
小学师德标兵先进事迹材料
2014/05/25 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
卫生院艾滋病宣传活动总结
2015/05/09 职场文书
2015年试用期工作总结范文
2015/05/28 职场文书
高中生军训感言
2015/08/01 职场文书
2019 入党申请书范文
2019/07/10 职场文书
导游词之西安骊山
2019/12/20 职场文书
MySQL数据库完全卸载的方法
2022/03/03 MySQL
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL