天天看点

Scrapy基础学习scrapy总结

scrapy总结

1.scrapy创建

scrapy startproject 名字

2.运行爬虫文件

scrapy crawl 名字

setting的设置

ROBOTSTXT_OBEY

robots 协议,也叫机器人协议它用来限定爬虫程序可以爬取的内容范围。

在 scrapy 项目的 settings.py 文件中,默认 ROBOTSTXT_OBEY = True ,即遵守此协议。当爬取内容不符合该协议且仍要爬取时设置 ROBOTSTXT_OBEY = False,不遵守此协议。

一般来说,我们在爬取信息的时候会将ROBOTSTXT_OBEY改为False。

SPIDER_MIDDLEWARES中间件

一般来说,在设置setting时将里面的中间件打开,中间件也可以进行更改。详细信息请参考官方文档。

Spider中间件(Middleware)官方文档

ITEM_PIPELINES,数据库

连接mysql数据库,在items里面创建mysql字段,然后再pipelines.py文件中写Mysql的逻辑代码。

Scrapy概述

#Windows平台
    1、pip3 install wheel #安装后,便支持通过wheel文件安装软件,wheel文件官网:https://www.lfd.uci.edu/~gohlke/pythonlibs
    3、pip3 install lxml
    4、pip3 install pyopenssl
    5、下载并安装pywin32:https://sourceforge.net/projects/pywin32/files/pywin32/
    6、下载twisted的wheel文件:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted
    7、执行pip3 install 下载目录\Twisted-17.9.0-cp36-cp36m-win_amd64.whl
    8、pip3 install scrapy
  
#Linux平台
    1、pip3 install scrapy
           

常用命令

#1 查看帮助
    scrapy -h
    scrapy <command> -h

#2 有两种命令:其中Project-only必须切到项目文件夹下才能执行,而Global的命令则不需要
    Global commands:
        startproject #创建项目
            scrapy startproject amazon
        genspider    #创建爬虫程序  指定名称 限制爬取的网址
            scrapy genspider amzon www.amzon.cn
        settings     #如果是在项目目录下,则得到的是该项目的配置
            scrapy settings --get BOT_NAME
        runspider    #运行一个独立的python文件,不必创建项目
            scrapy runspider amzon.py
        shell        #scrapy shell url地址  在交互式调试,如选择器规则正确与否
            scrapy shell www.taobao.com
        fetch        #单纯地爬取一个页面,不打开浏览器,可以拿到请求头
            scrapy fetch --nolog http://www.baidu.com 不输出日志
            scrapy fetch --nolog --header http://www.baidu.com 不输出日志  只查看头信息
        view         #下载完毕后直接弹出浏览器,以此可以分辨出哪些数据是ajax请求
            scrapy view http://www.baidu.com
        version      #scrapy version 查看scrapy的版本,scrapy version -v查看scrapy依赖库的版本
            scrapy version -v


    Project-only commands:
        #必须先切换到对应的目录才能执行
        crawl        #运行爬虫,必须创建项目才行,确保配置文件中ROBOTSTXT_OBEY = False
            scrapy crawl amzon
        check        #检测项目中有无语法错误
            scrapy check
        list         #列出项目中所包含的爬虫名
            scrapy list
        edit         #编辑器,一般不用
        parse        #scrapy parse url地址 --callback 回调函数  #以此可以验证我们的回调函数是否正确
        bench        #scrapy bentch压力测试

#3 官网链接
    https://docs.scrapy.org/en/latest/topics/commands.html
           

目录结构

project_name/
   scrapy.cfg
   project_name/
       __init__.py
       items.py
       pipelines.py
       settings.py
       spiders/
           __init__.py
           爬虫1.py
           爬虫2.py
           爬虫3.py
文件说明:
scrapy.cfg  项目的主配置信息,用来部署scrapy时使用,爬虫相关的配置信息在settings.py文件中。
items.py    设置数据存储模板,用于结构化数据,如:Django的Model
pipelines    数据处理行为,如:一般结构化的数据持久化
settings.py 配置文件,如:递归的层数、并发数,延迟下载等。强调:配置文件的选项必须大写否则视为无效,正确写法USER_AGENT='xxxx'
spiders      爬虫目录,如:创建文件,编写爬虫规则
注意:一般创建爬虫文件时,以网站域名命名

import sys,os
sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='gb18030')
           

在pycharm中运行爬虫程序

在项目目录下新建:entrypoint.py

from scrapy.cmdline import execute
execute(['scrapy', 'crawl', 'amzon'])
           

继续阅读