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中类的定义、继承及使用对象实例详解
Apr 30 Python
python实现聚类算法原理
Feb 12 Python
TensorFlow实现RNN循环神经网络
Feb 28 Python
分析python动态规划的递归、非递归实现
Mar 04 Python
Python中分支语句与循环语句实例详解
Sep 13 Python
我就是这样学习Python中的列表
Jun 02 Python
Python机器学习算法库scikit-learn学习之决策树实现方法详解
Jul 04 Python
Python英文文章词频统计(14份剑桥真题词频统计)
Oct 13 Python
Python使用多进程运行含有任意个参数的函数
May 02 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
Jun 15 Python
解决pycharm 格式报错tabs和space不一致问题
Feb 26 Python
Pytest实现setup和teardown的详细使用详解
Apr 17 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 escape URL编码
2008/12/10 PHP
php5.3 废弃函数小结
2010/05/16 PHP
PHP工程师VIM配置分享
2015/12/15 PHP
php使用timthumb生成缩略图的方法
2016/01/22 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
HTML5如何适配 iPhone IOS 底部黑条
2021/03/09 HTML / CSS
最常用的12种设计模式小结
2011/08/09 Javascript
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
2016/06/20 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
2016/09/03 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
2016/09/06 Javascript
微信小程序本地缓存数据增删改查实例详解
2017/05/24 Javascript
JavaScript 用fetch 实现异步下载文件功能
2017/07/21 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
基于JavaScript中标识符的命名规则介绍
2018/01/06 Javascript
Node.js进阶之核心模块https入门
2018/05/23 Javascript
记录微信小程序 height: calc(xx - xx);无效问题
2019/12/30 Javascript
手机浏览器唤起微信分享(JS)
2020/10/11 Javascript
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
Python正则表达式匹配HTML页面编码
2015/04/08 Python
Python实现简单的代理服务器
2015/07/25 Python
简单实现python聊天程序
2018/04/01 Python
python:按行读入,排序然后输出的方法
2019/07/20 Python
完美解决Django2.0中models下的ForeignKey()问题
2020/05/19 Python
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
数据库面试要点基本概念
2013/10/31 面试题
天网工程实施方案
2014/03/26 职场文书
新员工试用期自我鉴定
2014/04/17 职场文书
优质服务活动实施方案
2014/05/02 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书
2014年库房工作总结
2014/11/26 职场文书
2014年社区教育工作总结
2014/12/02 职场文书
道歉信范文
2015/05/12 职场文书