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二叉树遍历的实现方法
Nov 21 Python
Python基础之函数用法实例详解
Sep 10 Python
利用python发送和接收邮件
Sep 27 Python
python监控文件并且发送告警邮件
Jun 21 Python
python爬虫神器Pyppeteer入门及使用
Jul 13 Python
Python 单例设计模式用法实例分析
Sep 23 Python
Numpy之reshape()使用详解
Dec 26 Python
Python基于class()实现面向对象原理详解
Mar 26 Python
Python是什么 Python的用处
May 26 Python
QML实现钟表效果
Jun 02 Python
PyCharm 光标变成黑块的解决方式
Feb 06 Python
python运行脚本文件的三种方法实例
Jun 25 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通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
php打包网站并在线压缩为zip
2016/02/13 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
与jquery serializeArray()一起使用的函数,主要来方便提交表单
2011/01/31 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
Nodejs极简入门教程(二):定时器
2014/10/25 NodeJs
JavaScript数据结构和算法之二叉树详解
2015/02/11 Javascript
jQuery插件制作之参数用法实例分析
2015/06/01 Javascript
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
AngularJS实现Model缓存的方式
2016/02/03 Javascript
Vue.js快速入门教程
2016/09/07 Javascript
el表达式 写入bootstrap表格数据页面的实例代码
2017/01/11 Javascript
3种vue组件的书写形式
2017/11/29 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
2018/02/28 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
2019/01/23 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
一张图带我们入门Python基础教程
2017/02/05 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
PyQtGraph在pyqt中的应用及安装过程
2019/08/04 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
Python Opencv提取图片中某种颜色组成的图形的方法
2019/09/19 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
French Connection官网:女装、男装及家居用品
2019/03/18 全球购物
德国珠宝和手表在线商店:VALMANO
2019/03/24 全球购物
德国购买踏板车网站:Microscooter
2019/10/14 全球购物
自荐信的五个重要部分
2013/10/29 职场文书
大学生自荐书范文
2013/12/10 职场文书
《影子》教学反思
2014/02/21 职场文书
股权转让意向书
2014/04/01 职场文书
超市创意活动方案
2014/08/15 职场文书
Windows Server 2022 超融合部署(图文教程)
2022/06/25 Servers