scrapy框架

参考资料:
https://blog.csdn.net/qq_37758925/article/details/108607592
https://blog.csdn.net/weixin_42572590/article/details/103629254

更新pip安装
1.不要直接win+R然后cmd,而是要选择“开始”—“Windows系统”—“命令提示符”—右键“以管理员身份运行”!!!
2.不要用家用WiFi,开手机热点连接!!!
3.管理员身份运行命令提示符后,使用镜像下载升级!!!代码如下:

python -m pip install --upgrade pip -i https://pypi.douban.com/simple

scrapy安装

声明:安装请注意版本Python版本!!!

步骤概览:
1、网络安装wheel;
2、本地安装lxml;lxml下载地址
3、本地安装pyWin32;pyWin32下载地址
4、本地安装Twisted;Twisted下载地址
5、网络安装Scrapy;

1、网络安装wheel

pip install wheel

2、本地安装三个库
(1)点击此 下载地址,进入网站,下载,如下:
在这里插入图片描述
(2)本地安装

找到 lxml文件 下载到本地的路径,进入cmd安装,如下:
在这里插入图片描述
在这里插入图片描述
安装pyWin32、Twisted和安装lxml步骤一样。
3、网络安装Scrapy

以管理员身份打开cmd > 输入pip install scrapy
在这里插入图片描述
4、检验Scrap是否安装成功

以管理员身份打开cmd > 输入scrapy,结果如下:
在这里插入图片描述

scrapy基本知识

爬虫框架

  • 爬虫框架是实现爬虫功能的一个软件结构和功能组件集合。
  • 爬虫框架是一个半成品,能够帮助用户实现专业网络爬虫。

5+2结构

在这里插入图片描述
程序员主要编写的是SPIDERS和ITEMPIPELINES部分

Scrapy与requests的不同

相同点

  • 两者都可以进行页面请求和爬取,python爬虫的两个重要技术路线。
  • 两者可用性都好,文档丰富,入门简单。
  • 两者都没有处理js、提交表单、应对验证码等功能。
requestsScrapy
页面级爬虫网站级爬虫
功能库框架
并发性考虑不足,性能较差并发性好,性能较高
重点在于页面下载重点在于爬虫结构
定制灵活一般定制灵活,深度定制困难
上手十分简单入门稍难

选用哪个技术路线开发爬虫?

  • 非常小的需求,requests库
  • 不太小的需求,Scrapy库
  • 定制要求较高的需求(不考虑规模),自搭框架,requests>Scrapy

Scrapy命令行的使用

在这里插入图片描述
Requests类
在这里插入图片描述

Response类
在这里插入图片描述
Item类
在这里插入图片描述

Scrapy爬虫的基本使用

  1. 创建一个工程和Spider模板
  2. 编写Spider
  3. 编写Item Pipline
  4. 优化配置策略

实例1:

  • 目标网站:https://python123.io/ws/demo.html
  • 文件名称:demo.html

基本步骤:

  1. 创建工程
scrapy startproject python123demo
  1. 进入项目目录并产生一个Scrapy爬虫
cd python123demo
scrapy genspider demo python123.io

生成的默认demo文件如下(已添加注释)

import scrapy


class DemoSpider(scrapy.Spider):
    name = 'demo'#爬虫名称
    allowed_domains = ['python123.io']#指定域名
    start_urls = ['http://python123.io/']#爬取页面的初始页面

    def parse(self, response):# 解析页面的方法
        pass

  1. 配置产生的spider爬虫
import scrapy


class DemoSpider(scrapy.Spider):
    name = 'demo'#爬虫名称
    # allowed_domains = ['python123.io']#指定域名
    start_urls = ['http://python123.io/ws/demo.html']#爬取页面的初始页面

    def parse(self, response):# 解析页面的方法
        fname=response.url.split('/')[-1]
        with open(fname,'wb') as f:
            f.write(response.body)
        self.log('Saved file %s.' %self.name)

  1. 运行爬虫,获取网页
scrapy crawl demo

注:
生成的工程目录
在这里插入图片描述

股票项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

详情参考:https://www.icourse163.org/learn/BIT-1001870001?tid=1461946455#/learn/content?type=detail&id=1238729659

注意: 使用了yield生成器

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值