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中的字典详细介绍
Sep 18 Python
总结Python中逻辑运算符的使用
May 13 Python
Python捕捉和模拟鼠标事件的方法
Jun 03 Python
基于Python_脚本CGI、特点、应用、开发环境(详解)
May 23 Python
python中将字典形式的数据循环插入Excel
Jan 16 Python
Django中日期处理注意事项与自定义时间格式转换详解
Aug 06 Python
Python利用heapq实现一个优先级队列的方法
Feb 03 Python
python Dijkstra算法实现最短路径问题的方法
Sep 19 Python
Django实现简单网页弹出警告代码
Nov 15 Python
pycharm实现在子类中添加一个父类没有的属性
Mar 12 Python
Python基础之字符串格式化详解
Apr 21 Python
python办公自动化之excel的操作
May 23 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
一个目录遍历函数
2006/10/09 PHP
php如何解决无法上传大于8M的文件问题
2014/03/10 PHP
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
PHP扩展模块memcached长连接使用方法分析
2014/12/24 PHP
php生成年月日下载列表的方法
2015/04/24 PHP
Prototype使用指南之selector.js
2007/01/10 Javascript
javascript面向对象编程代码
2011/12/19 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
2013/07/10 Javascript
小米公司JavaScript面试题
2014/12/29 Javascript
原生javascript实现简单的datagrid数据表格
2015/01/02 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
es6学习笔记之Async函数的使用示例
2017/05/11 Javascript
详解AngularJS1.x学习directive 中‘& ’‘=’ ‘@’符号的区别使用
2017/08/23 Javascript
js定时器实现倒计时效果
2017/11/05 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
用js实现放大镜效果
2020/10/28 Javascript
原生js实现无缝轮播图效果
2021/01/28 Javascript
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
解决Pandas to_json()中文乱码,转化为json数组的问题
2018/05/10 Python
解决Pycharm运行时找不到文件的问题
2018/10/29 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
Python中的 ansible 动态Inventory 脚本
2020/01/19 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
Python是怎样处理json模块的
2020/07/16 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
大学毕业生的自我鉴定
2013/11/30 职场文书
楼面部长岗位职责范本
2014/02/14 职场文书
高中生职业生涯规划书
2014/02/24 职场文书
启动仪式策划方案
2014/06/14 职场文书
领导班子个人查摆问题对照检查材料
2014/10/02 职场文书
社区文明倡议书
2015/04/28 职场文书
2016年九九重阳节活动总结
2016/04/01 职场文书
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
2021/04/24 Python
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server