Python爬虫学习笔记(实例:scrapy框架基础)

scrapy爬虫框架

命令行格式:scrapy<command>[option][args]

常用命令:

全局命令

startproject

语法: scrapy startproject <project_name>[dir]

这个命令是 scrapy最为常用的命令之一,它将会在当前目录下创建一个名为 <project_name>的项目。

settings

语法: scrapy settings [options]

该命令将会输出Scrapy默认设定,当然如果你在项目中运行这个命令将会输出项目的设定值。

runspider

语法: scrapy runspider <spider_file.py>

在未创建项目的情况下,运行一个编写在Python文件中的spider。

shell

语法: scrapy shell [url]

以给定的URL(如果给出)或者空(没有给出URL)启动Scrapy shell。

例如,scrapy shell http://www.baidu.com将会打开百度URL,

并且启动交互式命令行,可以用来做一些测试。

fetch

语法: scrapy fetch <url>

使用Scrapy下载器(downloader)下载给定的URL,并将获取到的内容送到标准输出。简单的来说,就是打印url的html代码。

view

语法: scrapy view <url>

在你的默认浏览器中打开给定的URL,并以Scrapy spider获取到的形式展现。 有些时候spider获取到的页面和普通用户看到的并不相同,一些动态加载的内容是看不到的, 因此该命令可以用来检查spider所获取到的页面。

version

语法: scrapy version [-v]

输出Scrapy版本。配合 -v 运行时,该命令同时输出Python, Twisted以及平台的信息。项目命令

crawl

语法: scrapy crawl <spider_name>

使用你项目中的spider进行爬取,即启动你的项目。这个命令将会经常用到,我们会在后面的内容中经常使用。

check

语法: crapy check [-l] <spider>

运行contract检查,检查你项目中的错误之处。

list

语法: scrapy list

列出当前项目中所有可用的spider。每行输出一个spider。

genspider

语法: scrapy genspider [-t template] <name> <domain>

在当前项目中创建spider。该方法可以使用提前定义好的模板来生成spider。您也可以自己创建spider的源码文件。

 

以爬取http://python123.io/ws/demo.html即http://python123.io的子页面为例

  1. 创建一个爬虫的工程:Cmd->scrapy startproject python123demo
  2. 在工程中产生一个scrapy爬虫:cd python123demo->scrapy genspider demo python123.io
  3. 配置产生的spider爬虫:修改start_urls中的链接为 http://python123.io/ws/demo.html ->更改爬取方法(demo.py文件)的具体功能

# -*- coding: utf-8 -*-
import scrapy


class DemoSpider(scrapy.Spider): #继承类
    name = 'demo'
   # allowed_domains = ['python123.io'] #提交给命令行的主域名,不需要
    start_urls = ['http://python123.io/ws/demo.html'] #scapy框架要爬取的初始页面

    def parse(self, response): #解析页面的空方法,parse()用于处理相应,解析内容形成字典,发现新的URL爬取请求
        fname = response.url.split('/')[-1]
        with open(fname,'wb') as f: #爬取网页并将其保存为一个名为fname的HTML文件
            f.write(response.body)
        self.log('saved file %s.'% name)
        pass

 

  1. 运行爬虫:scrapy  crawl demo
  2. yield生成器:不断产生值的函数,每次产生一个值,函数被冻结,被唤醒后再产生一次
  3. scrapy爬虫的使用步骤:

A.创建一个工程和spider模板 B.编写spider  C.编写ItemPipeline  D.配置优化策略

2.1爬虫三个数据类型:

Request类:

Reaponse类:

Item类:

3.CSS selector的基本使用:<HTML>.css(‘a::attr(href)’).extract()

发布了33 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_33360009/article/details/104073493