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中用keys()方法返回字典键的教程
May 21 Python
Windows下使Python2.x版本的解释器与3.x共存的方法
Oct 25 Python
Python 2.x如何设置命令执行的超时时间实例
Oct 19 Python
Python实现将doc转化pdf格式文档的方法
Jan 19 Python
Python实现对一个函数应用多个装饰器的方法示例
Feb 09 Python
Python绘制的二项分布概率图示例
Aug 22 Python
解决Python plt.savefig 保存图片时一片空白的问题
Jan 10 Python
nginx+uwsgi+django环境搭建的方法步骤
Nov 25 Python
python通过安装itchat包实现微信自动回复收到的春节祝福
Jan 19 Python
利用Python实现斐波那契数列的方法实例
Jul 26 Python
python使用dlib进行人脸检测和关键点的示例
Dec 05 Python
django学习之ajax post传参的2种格式实例
May 14 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/08/19 PHP
php jsonp单引号转义
2014/11/23 PHP
制作个性化的WordPress登陆界面的实例教程
2016/05/21 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
window.showModalDialog使用手册
2007/01/11 Javascript
JS中==与===操作符的比较
2009/03/21 Javascript
Javascript技巧之不要用for in语句对数组进行遍历
2010/10/20 Javascript
使用js如何实现全选与全不选
2013/12/30 Javascript
jQuery中选择器小问题(新人难免遇到)
2014/03/31 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
jQuery插件jFade实现鼠标经过的图片高亮其它变暗
2015/03/14 Javascript
js利用正则表达式检验输入内容是否为网址
2016/07/05 Javascript
nodejs 子进程正确的打开方式
2017/07/03 NodeJs
深入理解requireJS-实现一个简单的模块加载器
2018/01/15 Javascript
解决vue中对象属性改变视图不更新的问题
2018/02/23 Javascript
js图片查看器插件用法示例
2019/06/22 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
[03:42]2014DOTA2国际邀请赛 第三日比赛排位扑朔迷离
2014/07/12 DOTA
[01:08:09]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第二局
2016/03/02 DOTA
Python多线程编程(二):启动线程的两种方法
2015/04/05 Python
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
Python3中的最大整数和最大浮点数实例
2019/07/09 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
2019/07/30 Python
python 生成任意形状的凸包图代码
2020/04/16 Python
Python环境管理virtualenv&virtualenvwrapper的配置详解
2020/07/01 Python
欧洲领先的技术商店:eibmarkt.com
2019/05/10 全球购物
李维斯法国官网:Levi’s法国
2019/07/13 全球购物
印度排名第一的蛋糕、鲜花和礼品送货:Winni
2019/08/02 全球购物
美国健康和保健平台:healtop
2020/07/02 全球购物
厨房工作人员岗位职责
2013/11/15 职场文书
个人校本研修方案
2014/05/26 职场文书
贵阳市党的群众路线教育实践活动党(工)委领导班子整改方案
2014/10/26 职场文书
股权转让协议书
2014/12/07 职场文书
美德少年主要事迹材料
2015/11/04 职场文书
教学工作总结范文5篇
2019/08/19 职场文书