Python的Scrapy框架基本使用详解

 更新时间:2023年12月06日 10:10:15   作者:凌冰_  
这篇文章主要介绍了Python的Scrapy框架基本使用详解,Scrapy,Python开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据,Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试,需要的朋友可以参考下

一、Scrapy框架使用

1. 创建scrapy项目

(不能有汉字,不能数字开头)

scrapy startproject Baidu

2. 创建爬虫文件

cd Baidu
scrapy  genspider wenda www.baidu.com

注意: parse()是执行了start_url之后要执行的方法,方法中的response就是返回的对象。相当于response = requests.get或requests.post

3. 运行爬虫代码

scrapy crawl wenda

在parse()函数打印一句话,运行后发现没有打印结果,原因是被一个叫robots.txt的文件给阻止了。

解决:大平台的君子协议,只需在settings里将ROBOTSTXT_OBEY = True注释掉即可。

再次运行 

 4. scrapy文档

scrapy官网:https://scrapy.org/ 

scrapy文档:https://doc.scrapy.org/en/latest/intro/tutorial.html 

scrapy日志:https://docs.scrapy.org/en/latest/news.html

 二、scrapy项目的结构

四、response的属性和方法

  • response.text 获取响应的字符串(源码)
  • response.body 获取响应的二进制数据(二进制源码)
  • response.xpath 直接通过xpath解析response中的内容
  • response.extract() 提取selector对象的data所有属性值
  • response.extract_first() 提取selector列表的第一个数据
  • response.get() : 得到第一条数据
  • response.getall() :取出所有的数据,以列表的方式呈现

五、scrapy工作原理

  1. 引擎向spiders要url
  2. 引擎将要爬取的url给调度器
  3. 调度器会将url生成请求对象放入到指定的队列中
  4. 从队列中出队一个请求
  5. 引擎将请求交给下载器处理
  6. 下载器发送请求获取互联网数据
  7. 下载器将数据返回给引擎
  8. 引擎将数据再次给spiders
  9. spiders通过xpath解析该数据,得到数据或url
  10. spiders将数据或url给到引擎
  11. 引擎判断是数据还是url,若是数据,交给管道处理;若是url,交给调度器处理

到此这篇关于Python的Scrapy框架基本使用详解的文章就介绍到这了,更多相关Python的Scrapy框架内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 聊聊.py和.ipynb的一些小知识

    聊聊.py和.ipynb的一些小知识

    这篇文章主要介绍了聊聊.py和.ipynb的一些小知识,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Python PyQt5实战项目之文件拷贝器的具体实现详解

    Python PyQt5实战项目之文件拷贝器的具体实现详解

    PyQt5以一套Python模块的形式来实现功能。它包含了超过620个类,600个方法和函数。本篇文章手把手带你用PyQt5实现一个简单的文件拷贝器,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • Python、PyCharm安装及使用方法(Mac版)详解

    Python、PyCharm安装及使用方法(Mac版)详解

    这篇文章主要为大家详细介绍了Mac版的Python、PyCharm安装及使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • redis数据库及与python交互用法简单示例

    redis数据库及与python交互用法简单示例

    这篇文章主要介绍了redis数据库及与python交互用法,结合实例形式分析了Redis数据库的基本类型、操作以及Python针对Redis数据库的连接、增删改查等相关操作技巧,需要的朋友可以参考下
    2019-11-11
  • wxpython中Textctrl回车事件无效的解决方法

    wxpython中Textctrl回车事件无效的解决方法

    这篇文章主要介绍了wxpython中Textctrl回车事件无效的解决方法,较为详细的分析了TextCtrl支持的事件类型,并给出了TextCtrl绑定回车事件的相应实现技巧,需要的朋友可以参考下
    2016-07-07
  • python抢购软件/插件/脚本附完整源码

    python抢购软件/插件/脚本附完整源码

    这篇文章主要介绍了python抢购软件/插件/脚本附完整源码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Python调用C++,通过Pybind11制作Python接口

    Python调用C++,通过Pybind11制作Python接口

    今天小编就为大家分享一篇关于Python调用C++,通过Pybind11制作Python接口,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • tensorflow 恢复指定层与不同层指定不同学习率的方法

    tensorflow 恢复指定层与不同层指定不同学习率的方法

    今天小编就为大家分享一篇tensorflow 恢复指定层与不同层指定不同学习率的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • PyQt5的QWebEngineView使用示例

    PyQt5的QWebEngineView使用示例

    这篇文章主要介绍了PyQt5的QWebEngineView使用示例,帮助大家更好的学习和使用python,感兴趣的朋友可以了解下
    2020-10-10
  • Jupyter notebook 更改文件打开的默认路径操作

    Jupyter notebook 更改文件打开的默认路径操作

    这篇文章主要介绍了Jupyter notebook 更改文件打开的默认路径操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05

最新评论