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使用logging结合decorator模式实现优化日志输出的方法
Apr 16 Python
python利用paramiko连接远程服务器执行命令的方法
Oct 16 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
Nov 01 Python
对numpy中数组元素的统一赋值实例
Apr 04 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
Oct 11 Python
python os.listdir按文件存取时间顺序列出目录的实例
Oct 21 Python
django之导入并执行自定义的函数模块图解
Apr 01 Python
python进行参数传递的方法
May 12 Python
python中有帮助函数吗
Jun 19 Python
在Tensorflow中实现leakyRelu操作详解(高效)
Jun 30 Python
python中re模块知识点总结
Jan 17 Python
python函数指定默认值的实例讲解
Mar 29 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 正则匹配函数体
2009/08/25 PHP
深入分析PHP优化及注意事项
2016/07/04 PHP
php设计模式之工厂模式用法经典实例分析
2019/09/20 PHP
javascript让setInteval里的函数参数中的this指向特定的对象
2010/01/31 Javascript
jQuery实现div拖拽效果实例分析
2016/02/20 Javascript
jQuery中 $ 符号的冲突问题及解决方案
2016/11/04 Javascript
微信小程序实现滑动删除效果
2017/05/19 Javascript
JavaScript简介_动力节点Java学院整理
2017/06/26 Javascript
nodeJS(express4.x)+vue(vue-cli)构建前后端分离实例(带跨域)
2017/07/05 NodeJs
原生JavaScript实现Ajax异步请求
2017/11/19 Javascript
nodeJS微信分享
2017/12/20 NodeJs
React组件中的this的具体使用
2018/02/28 Javascript
深入理解Promise.all
2018/08/08 Javascript
Vue实现简单分页器
2018/12/29 Javascript
vue中axios的二次封装实例讲解
2019/10/14 Javascript
js中调用微信的扫描二维码功能的实现代码
2020/04/11 Javascript
react实现复选框全选和反选组件效果
2020/08/25 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
python实现异步回调机制代码分享
2014/01/10 Python
Python基于xlrd模块操作Excel的方法示例
2018/06/21 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
python在不同条件下的输入与输出
2020/02/13 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2020/02/26 Python
Python实现区域填充的示例代码
2021/02/03 Python
Lookfantastic美国/加拿大:英国知名美妆购物网站
2019/03/27 全球购物
国际奢侈品品牌童装购物网站:Designer Childrenswear
2019/05/08 全球购物
手术室护士自我鉴定
2013/10/14 职场文书
总务岗位职责
2013/11/19 职场文书
高职教师岗位职责
2013/12/24 职场文书
交通事故协议书
2014/04/15 职场文书
应聘教师自荐书
2014/06/16 职场文书
领导党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
单位介绍信格式
2015/01/31 职场文书
Python初学者必备的文件读写指南
2021/06/23 Python
Python实现学生管理系统并生成exe可执行文件详解流程
2022/01/22 Python