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处理python编码问题
Mar 13 Python
DJANGO-ALLAUTH社交用户系统的安装配置
Nov 18 Python
Python中的推导式使用详解
Jun 03 Python
Python中对元组和列表按条件进行排序的方法示例
Nov 10 Python
Python自定义简单图轴简单实例
Jan 08 Python
对Python 文件夹遍历和文件查找的实例讲解
Apr 26 Python
利用selenium爬虫抓取数据的基础教程
Jun 10 Python
python中的 zip函数详解及用法举例
Feb 16 Python
Python要如何实现列表排序的几种方法
Feb 21 Python
Django 解决上传文件时,request.FILES为空的问题
May 20 Python
Django 权限管理(permissions)与用户组(group)详解
Nov 30 Python
Python可视化神器pyecharts之绘制箱形图
Jul 07 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
Terran建筑一览
2020/03/14 星际争霸
《APMServ 5.1.2》使用图解
2006/10/23 PHP
PHP、Java des加密解密实例
2015/04/27 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
php插入含有特殊符号数据的处理方法
2016/11/24 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
2020/04/23 PHP
5 cool javascript apps
2007/03/24 Javascript
JavaScript 利用StringBuffer类提升+=拼接字符串效率
2009/11/24 Javascript
JQuery 选择器、过滤器介绍
2011/02/14 Javascript
JavaScript生成GUID的多种算法小结
2013/08/18 Javascript
网页运行时提示对象不支持abigimage属性或方法
2014/08/10 Javascript
jQuery on方法传递参数示例
2014/12/09 Javascript
初识Javascript小结
2015/07/16 Javascript
基于BootStrap Metronic开发框架经验小结【七】数据的导入、导出及附件的查看处理
2016/05/12 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
2016/10/19 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
详解Python的Django框架中的templates设置
2015/05/11 Python
selenium+python自动化测试之页面元素定位
2019/01/23 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
python获取引用对象的个数方式
2019/12/20 Python
pytorch构建多模型实例
2020/01/15 Python
查看keras的默认backend实现方式
2020/06/19 Python
浅析PyCharm 的初始设置(知道)
2020/10/12 Python
利用python清除移动硬盘中的临时文件
2020/10/28 Python
TensorFlow的环境配置与安装方法
2021/02/20 Python
纯css3制作煽动翅膀的蝴蝶的示例
2018/04/23 HTML / CSS
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
学校后勤人员职责
2013/12/27 职场文书
中专生职业生涯规划书范文
2013/12/29 职场文书
2015年社区纪检工作总结
2015/04/21 职场文书
写给老师的保证书
2015/05/09 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书