IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Scrapy爬虫框架 -> 正文阅读

[开发工具]Scrapy爬虫框架

在这里插入图片描述

一、Scrapy安装

1、命令行安装

可以直接在命令行输入以下命令

pip install scrapy

由于 pip 安装会自动安装 scrapy 爬虫框架依赖的各种包,安装速度较慢,出错概率较 大,建议增加-i 参数,使用清华镜像安装。

pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple/

安装成功后在命令行输入scrapy,出现下图中的提示则代表Scrapy安装成功了
在这里插入图片描述

2.Pycharm下安装

打开pycharm,在菜单栏选择“file->settings”,在页面中找到“Python Interpreter”。
鼠标点击加号“+”,点击“Manage Repositories”修改镜像源为 清华镜像。修改“https://pypi.python.org/simple”为“https://pypi.tuna.tsinghua.edu.cn /simple”。
保存后,在“Available Packages”中输入 Scrapy。点击“Install Package” 进行安装。安装完成后会出现“Package Scrapy installed successfully”的提示。
注意:Pycharm 下的 Scrapy 的安装,是将 Scrapy 安装在独立的虚拟环境中,每次创建项目后都需要再次安装。

二、案例

以爬取百度首页的导航链接为例

1.创建爬虫项目

打开 pycharm,在底部状态栏中点击“Terminal”,输入“scrapy startproject baiduSpider”,其中 baiduspier 为 Scrapy 项目名称。
在这里插入图片描述

2.创建爬虫文件

爬虫项目和爬虫的关系为1对多的关系,首先使用“cd baiduspider”命令进入目录baiduspider,然后使用命令“scrapy genspider baidu baidu.com” 生成爬虫文件。其中参数“baidu”为爬虫名称,需要注意 的是爬虫文件的名称不能和爬虫项目 baiduspider 重复。参数“baidu.com”为域名。
在这里插入图片描述
在 baiduspider/baiduspider/spiders 目录下找到 baidu.py 文件。内容如下:

import scrapy

class BaiduSpider(scrapy.Spider):
    name = 'baidu'   #爬虫的名字
    allowed_domains = ['baidu.com']    #域名,约定爬取的范围
    start_urls = ['http://baidu.com/']     #爬虫启动时默认爬取的地址

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

3.定义爬取数据项

在 baiduspider/baiduspider 文件夹下找到 items.py 文件。代码如下

import scrapy
class BaiduspiderItem(scrapy.Item):
    # define the fields for your item here like:
    # name = scrapy.Field()
    pass

类 BaiduspiderItem 继承自 scrapy.Item。注释的内容约定了定义数据项的使用方式。 只需要定义数据项的名称即可。数据项的值都是 scrapy.Field()。

import scrapy
class BaiduspiderItem(scrapy.Item):
    title=scrapy.Field()   #导航a标签的中文名称
    url=scrapy.Field()    #导航链接地址

4.定义爬虫解析

打开“baiduspider/baiduspider/spiders”目录下找到 baidu.py 文件,修改解析方 法 parse

import scrapy
from baiduSpider.items import BaiduspiderItem
class BaiduSpider(scrapy.Spider):
    name = 'baidu'   #爬虫的名字
    allowed_domains = ['baidu.com']    #域名,约定爬取的范围
    start_urls = ['https://www.baidu.com/']     #爬虫启动时默认爬取的地址

    def parse(self, response):   #解析爬取到页面的方法
        for row in response.xpath("//div[@id='u1']/a"):   #循环逐行从列表中获取每个链接
            item=BaiduspiderItem()   #实例化
            item['title']=row.xpath("text()").get()
            item['url']=row.xpath("@href").get()
            yield item

5.运行爬虫

运行前还是要进入爬虫项目所在的目录,否则无法运行,执行命令“scrapy crawl baidu”,但是运行后会打印输出非常多的日志信息,是因为缺省情况下日志等级为info,在 配置文件“baiduspider/baiduspider/settings.py”文件中进行调整

ROBOTSTXT_OBEY = False #关闭robots协议,否则很多页面都无法爬取
LOG_LEVEL="WARNING"   #日志为警告以上才显示

调整后程序重新运行,发现没有任何提示,是因为 parse 函数中没有任何输出。增加-o
参数,将爬取的结果输出为文件。命令为“scrapy crawl baidu -o baidu.csv”。运行后 在 baiduspider 目录下查看 baidu.csv 文件。
结果如下:
在这里插入图片描述

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-10-03 17:15:42  更:2021-10-03 17:16:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:16:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码