爬虫之scrapy基础

admin 2023年3月16日13:05:21评论24 views字数 2160阅读7分12秒阅读模式

高质量的安全文章,安全offer面试经验分享

尽在 # 掌控安全EDU #

作者:掌控安全-yuyalinnb

1.安装和简介

Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架。
原理图:

爬虫之scrapy基础
简单来说,先去spiders拿url,再转到引擎,再给其他的模块传来传去。

我自己是linux安装,windows安装很麻烦

  1. sudo apt-get install libxml2-dev libxslt-dev python-dev

  2. pip install lxml

  3. sudo apt-get install python-dev python-pip libxml2-dev zlib1g-dev libffi-dev libssl-dev

  4. pip install Scrapy

  5. apt-get install python3-scrapy

这几条都可以试试,毕竟安装这个东西很玄学。
输入scrapy后出现这个就是下载好了:

  1. └─# scrapy

  2. Scrapy 2.7.1 - no active project

  3. Usage:

  4. scrapy <command> [options] [args]

  5. Available commands:

  6. bench Run quick benchmark test

  7. commands

  8. fetch Fetch a URL using the Scrapy downloader

  9. genspider Generate new spider using pre-defined templates

  10. runspider Run a self-contained spider (without creating a project)

  11. settings Get settings values

  12. shell Interactive scraping console

  13. startproject Create new project

  14. version Print Scrapy version

  15. view Open URL in browser, as seen by Scrapy

  16. [ more ] More commands available when run from project directory

  17. Use "scrapy <command> -h" to see more info about a command

2.文件作用

创建项目:

  1. scrapy startproject <项目名字>

框架结构:

  1. tree <项目名字>

  2. myspider

  3. ├── __init__.py

  4. ├── items.py

  5. ├── middlewares.py

  6. ├── pipelines.py -->管道 保存数据

  7. ├── settings.py --> 设置文件 ua 启动管道

  8. └── spiders -->自定义

  9. └── __init__.py

先来看看scrapy.cfg
settings是详细设置
deploy部署 应用于项目部署

爬虫之scrapy基础

爬虫之scrapy基础
items.py 模版类,定义数据存储模型

爬虫之scrapy基础
middlewsres 中间件模块,一般不用编写。

爬虫之scrapy基础
pipelines 数据清洗或保存

爬虫之scrapy基础

3. 创建爬虫

在项目目录下执行:

  1. cd example

  2. scrapy genspider example example.com

新的框架结构
爬虫之scrapy基础

爬虫之scrapy基础
首先继承了一个类,name是爬虫的名字,allowed_domain是允许的域名,意思是只爬取这个域名的信息,start_urs起始url是bbs.zkaq.cn。

parse方法中response是请求bbs对应的响应。
运行爬虫:

  1. scrapy crawl zkaq --nolog

—nolog:去除日志,只得到结果。
我之前有一篇爬取所有帖子名字的文章,这里直接把当时的xpath放到parse方法里。

爬虫之scrapy基础
这里用的是response的xpath方法,返回一个列表,操作和列表一样,但是有两个别的方法:

  1. extarct(): 返回一个带有字符串的列表

  2. extarct_first():返回列表的第一个字符串,没有时返回none。

用上面的指令运行:

爬虫之scrapy基础
一点vim知识(我不太会linux):

  1. i 进入编辑模式

  2. ESC 退出模式

  3. :wq 保存并退出

4.保存数据

利用管道(pipelines)对数据进行处理和保存。

  1. 定义一个管道类

  2. 重写process_item方法

  3. process_item处理完后返回给引擎
    实际上是,spiders给引擎,引擎给pipeline
    爬虫之scrapy基础
    在settings.py中,把管道注释删除,这一步叫做启动管道。

爬虫之scrapy基础
管道执行顺序:

  1. ITEM_PIPELINES = {

  2. 'myspider.pipelines.MySpiderPipeline': 299,

  3. 'myspider.pipelines.MySpiderPipeline': 300,

  4. }

则299先执行。
在zkaq.py中,使用yield把node_list返回给引擎

爬虫之scrapy基础
最后运行爬虫

爬虫之scrapy基础


申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.


回顾往期内容

Xray挂机刷漏洞

零基础学黑客,该怎么学?

网络安全人员必考的几本证书!

文库|内网神器cs4.0使用说明书

代码审计 | 这个CNVD证书拿的有点轻松

【精选】SRC快速入门+上分小秘籍+实战指南

    代理池工具撰写 | 只有无尽的跳转,没有封禁的IP!

爬虫之scrapy基础


扫码白嫖视频+工具+进群+靶场等资料


爬虫之scrapy基础

 


爬虫之scrapy基础

 扫码白嫖


 还有免费的配套靶场交流群

原文始发于微信公众号(掌控安全EDU):爬虫之scrapy基础

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月16日13:05:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   爬虫之scrapy基础https://cn-sec.com/archives/1608495.html

发表评论

匿名网友 填写信息