16. scrapy框架
2024-03-03 本文已影响0人
薛东弗斯
Scrapy框架课程介绍:
⦁ 框架的简介和基础使用
⦁ 持久化存储
⦁ 代理和cookie
⦁ 日志等级和请求传参
⦁ CrawlSpider
⦁ 基于redis的分布式爬虫
⦁ scrapy框架的简介和基础使用
⦁ 概念:为了爬取网站数据而编写的一款应用框架,出名,强大。所谓的框架其实就是一个集成了相应的功能且具有很强通用性的项目模板。(高性能的异步下载,解析,持久化……)
⦁ 安装:
⦁ linux mac os:pip install scrapy
⦁ win:
⦁ pip install wheel
⦁ 下载twisted:https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
pip install 下载好的框架.whl
⦁ pip install pywin32
⦁ pip install scrapy
⦁ 基础使用: 使用流程
⦁ 创建一个工程:scrapy startproject 工程名称
⦁ 目录结构:
image.png
⦁ 在工程目录下创建一个爬虫文件:
⦁ cd 工程
⦁ scrapy genspider 爬虫文件的名称 起始url
⦁ 对应的文件中编写爬虫程序来完成爬虫的相关操作
⦁ 配置文件的编写(settings)
⦁ 执行
⦁ 在工程目录下创建一个爬虫文件
⦁ cd 工程
⦁ scrapy genspider 爬虫文件的名称 起始的url
⦁ 对应的文件中编写爬虫程序来完成爬虫的相关操作
⦁ 配置文件的编写(settings)
⦁ 19行:对请求载体的身份进行伪装
⦁ 22行:不遵从robots协议
⦁ 执行 :scrapy crawl 爬虫文件的名称 --nolog(阻止日志信息的输出)
创建第一个项目
在Terminal后,进入期望的文件夹, scrapy startproject new_project 创建新项目
新建好以后,就会自动生成如下目录结构
image.png
Terminal中cd new_project/spider
scrapy genspider spider_name www.baidu.com # 自动生成爬取www.baidu.com的py文件,文件名是spider_name.py
# spider_name.py
import scrapy
class FirstSpider(scrapy.Spider):
name = "first"
allowed_domains = ["www.baidu.com"]
start_urls = ["https://www.baidu.com"]
def parse(self, response):
pass
# -*- coding: utf-8 -*-
import scrapy
class FirstSpider(scrapy.Spider):
#爬虫文件的名称:通过爬虫文件的名称可以指定的定位到某一个具体的爬虫文件
name = 'first'
#允许的域名:只可以爬取指定域名下的页面数据
allowed_domains = ['www.qiushibaike.com']
#起始url:当前工程将要爬取的页面所对应的url
start_urls = ['http://www.qiushibaike.com/']
#解析方法:对获取的页面数据进行指定内容的解析
#response:根据起始url列表发起请求,请求成功后返回的响应对象
#parse方法的返回值:必须为迭代器或者空
def parse(self, response):
print(response.text)#获取响应对象中的页面数据
执行:Terminal终端下scrapy crawl first