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计算对角线有理函数插值的方法
May 07 Python
利用Pandas 创建空的DataFrame方法
Apr 08 Python
详解python中的hashlib模块的使用
Apr 22 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
Aug 26 Python
Python合并2个字典成1个新字典的方法(9种)
Dec 19 Python
python实现人机猜拳小游戏
Feb 03 Python
Python 3.8 新功能来一波(大部分人都不知道)
Mar 11 Python
Django的ListView超详细用法(含分页paginate)
May 21 Python
Python偏函数Partial function使用方法实例详解
Jun 17 Python
Python预测2020高考分数和录取情况
Jul 08 Python
Python3爬虫中识别图形验证码的实例讲解
Jul 30 Python
详解Python中的Lock和Rlock
Jan 26 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/09/30 PHP
一篇有意思的技术文章php介绍篇
2010/10/26 PHP
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
PHP中基本HTTP认证技巧分析
2015/03/16 PHP
php解析字符串里所有URL地址的方法
2015/04/03 PHP
PHP SPL标准库之文件操作(SplFileInfo和SplFileObject)实例
2015/05/11 PHP
PHP提高编程效率的20个要点
2015/09/23 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
Javascript调试工具(下载)
2007/01/09 Javascript
js下用gb2312编码解码实现方法
2009/12/31 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
2014/07/14 Javascript
JavaScript中用getDate()方法返回指定日期的教程
2015/06/09 Javascript
AngularJS控制器继承自另一控制器
2016/05/09 Javascript
妙用Bootstrap的 popover插件实现校验表单提示功能
2016/08/29 Javascript
AngularJS Select(选择框)使用详解
2017/01/18 Javascript
AngularJS学习笔记之表单验证功能实例详解
2017/07/06 Javascript
jQuery Autocomplete简介_动力节点Java学院整理
2017/07/17 jQuery
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
Angular4 ElementRef的应用
2018/02/26 Javascript
vue.js在标签属性中插入变量参数的方法
2018/03/06 Javascript
socket io与vue-cli的结合使用的示例代码
2018/11/01 Javascript
vue中使用vue-cli接入融云实现即时通信
2019/04/19 Javascript
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
wxPython实现画图板
2020/08/27 Python
可打印的优惠券、杂货和优惠券代码:Coupons.com
2018/06/12 全球购物
英国定做窗帘和纺织品面料一站式商店:Dekoria
2018/08/29 全球购物
Europcar比利时:租车
2019/08/26 全球购物
shallow copy和deep copy的区别
2016/05/09 面试题
2014年超市员工工作总结
2014/11/18 职场文书
租车协议书
2015/01/27 职场文书
2015年结对帮扶工作总结
2015/05/04 职场文书
工作收入证明范本
2015/06/12 职场文书
JS实现页面炫酷的时钟特效示例
2022/08/14 Javascript