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格式化压缩后的JS文件的方法
Mar 05 Python
Python装饰器使用实例:验证参数合法性
Jun 24 Python
Python实现二叉树结构与进行二叉树遍历的方法详解
May 24 Python
Python文本相似性计算之编辑距离详解
Nov 28 Python
django中的setting最佳配置小结
Nov 21 Python
如何通过雪花算法用Python实现一个简单的发号器
Jul 03 Python
Python如何基于rsa模块实现非对称加密与解密
Jan 03 Python
详解BeautifulSoup获取特定标签下内容的方法
Dec 07 Python
python爬虫利器之requests库的用法(超全面的爬取网页案例)
Dec 17 Python
Jupyter Notebook添加代码自动补全功能的实现
Jan 07 Python
python实现过滤敏感词
May 08 Python
Python破解极验滑动验证码详细步骤
May 21 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中new static()与new self()的区别异同分析
2014/08/22 PHP
利用PHP将部分内容用星号替换
2020/04/21 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
PHP面向对象多态性实现方法简单示例
2017/09/27 PHP
Thinkphp整合阿里云OSS图片上传实例代码
2019/04/28 PHP
Javascript的IE和Firefox兼容性汇编(zz)
2007/02/02 Javascript
项目实践之javascript技巧
2007/12/06 Javascript
capacityFixed 基于jquery的类似于新浪微博新消息提示的定位框
2011/05/24 Javascript
JavaScript实现倒计时代码段Item1(非常实用)
2015/11/03 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
vue轮播图插件vue-awesome-swiper
2017/11/27 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
vue实现点击关注后及时更新列表功能
2018/06/26 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
2018/07/24 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
2018/11/22 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
详解nuxt 微信公众号支付遇到的问题与解决
2019/08/26 Javascript
详解JSON.stringify()的5个秘密特性
2020/05/26 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
比较详细Python正则表达式操作指南(re使用)
2008/09/06 Python
python之virtualenv的简单使用方法(必看篇)
2017/11/25 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
美国睫毛、眉毛精华液领导品牌:RevitaLash Cosmetics
2018/03/26 全球购物
高级技校毕业生自荐信
2013/11/18 职场文书
夜班门卫岗位职责
2013/12/09 职场文书
大学四年规划书范文
2013/12/27 职场文书
社区十八大感言
2014/01/19 职场文书
初中考试作弊检讨书
2014/02/01 职场文书
银行爱岗敬业演讲稿
2014/05/05 职场文书
北京离婚协议书范文2014
2014/09/29 职场文书
故意伤害人身损害赔偿协议书
2014/11/19 职场文书
全国劳模先进事迹材料(2016精选版)
2016/02/25 职场文书
Java 数组的使用
2022/05/11 Java/Android