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根据经纬度计算距离示例
Feb 16 Python
python简单图片操作:打开\显示\保存图像方法介绍
Nov 23 Python
PyQt5每天必学之关闭窗口
Apr 19 Python
浅谈pyqt5中信号与槽的认识
Feb 17 Python
python实现两张图片的像素融合
Feb 23 Python
python日期相关操作实例小结
Jun 24 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
Sep 29 Python
Django创建一个后台的基本步骤记录
Oct 02 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
Dec 10 Python
Pytorch 如何实现LSTM时间序列预测
May 17 Python
python实现MD5进行文件去重的示例代码
Jul 09 Python
Python实现制作销售数据可视化看板详解
Nov 27 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颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
2013/09/23 PHP
PHP基于数组实现的分页函数实例
2014/08/20 PHP
PHP读取文件的常见几种方法
2016/11/03 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
Laravel 5.4因特殊字段太长导致migrations报错的解决
2017/10/22 PHP
详解PHP中curl_multi并发的实现
2020/06/08 PHP
可以用来调试JavaScript错误的解决方案
2010/08/07 Javascript
突发奇想的一个jquery插件
2010/11/19 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
js实现宇宙星空背景效果的方法
2015/03/03 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
jQuery获取radio选中项的值实例
2016/06/18 Javascript
Vuejs第八篇之Vuejs组件的定义实例解析
2016/09/05 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
简单了解小程序+node梳理登陆流程
2019/06/24 Javascript
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
新手该如何学python怎么学好python?
2008/10/07 Python
python装饰器初探(推荐)
2016/07/21 Python
python验证码识别实例代码
2018/02/03 Python
python监控键盘输入实例代码
2018/02/09 Python
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
解决Python中定时任务线程无法自动退出的问题
2019/02/18 Python
Python递归函数实例讲解
2019/02/27 Python
python django model联合主键的例子
2019/08/06 Python
Python的对象传递与Copy函数使用详解
2019/12/26 Python
keras多显卡训练方式
2020/06/10 Python
关于Python错误重试方法总结
2021/01/03 Python
详解css3 Transition属性(平滑过渡菜单栏案例)
2017/09/05 HTML / CSS
德国团购网站:Groupon德国
2018/03/13 全球购物
美国基督教约会网站:ChristianCafe.com
2020/02/04 全球购物
EJB2和EJB3在架构上的不同点
2014/09/29 面试题
小学生爱国演讲稿
2014/04/25 职场文书
党员干部三严三实心得体会
2014/10/13 职场文书
2019感恩宣传标语!
2019/07/05 职场文书