scrapy笔记

scrapy 安装下载

scrapy 需要lxml、twistew、py32、wheel 这个几个模板

 

lxml: pip install lxml 以前就装过了 没什么问题

twistew: 使用pip没法直接安装,到 http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下载相应版本的whl文件,再到下载的路径下使用 pip instatll 文件名。

py32: https://pypi.org/project/pywin32/#files 下载对应版本的文件, 到下载路径pip install 文件名

如果报错,说注册表没有找到python对应版本的信息,就使用如下代码,复制后运行再重新安装。

wheel: pip install wheel 如果提示更新pip源 ,就按他给的提示更新再重新下载。

 

就绪后 控制台输入scrapy 命令查看。

 

 

 

创建scrapy 项目

scrapy startproject Demo

 

创建的目录

pipelines保存数据,可以有多个管道, 设置多了管道的优先级

spriders 放的是爬虫,scrapy 是多线程爬虫, 这个文件夹下可以放多个爬虫

items 放的是实例

 

使用scrapy 创建爬虫

进入到创建的项目下 scrapy genspider 爬虫名 网站 回车

设置爬虫name、allow_domain、start_urls、log

 

运行爬虫

进入根目录 scrapy crawl 爬虫名

 

 

scrapy中 请求头之类的配置

 

 

 

http://www.ddshu.net/

 

logging 模块的使用

scrapy

settings 中设置 LOG_LEVEL="WARNING"

setting 中设置LOG_FILE="./a.log" #设置日志保存位置 设置后终端不会显示日志内容

import logging 实例化 logger 的方式再任何文件中使用logger输出内容

 

普通项目中可以 如下设置各种日志显示格式

import logging

logging.basicConfig("...")

 

 

如果使用了回调函数 并回调 Request(book_address_url,callback=self.get_startReadResponse,dont_filter=True)

发送了请求但是没有执行回调函数get_startReadResponse,

1. 可能是被allowed_domains过滤掉了,需要添加 dont_filter=True

2. 可能是没有经过pipeline管道。request需要经过管道去发请求,管道再去找这个回调函数,如果没有经过管道,回调函数会不执行。

 

 

 

scrapy debug 信息:

settings.py 里配置 LOG_LEVEL = "WARNING" 开启dbug

打印的信息: ../

scrapy shell:

使用命令: scrapy shell http://地址

请求后进入交互式终端,

scrapy setting文件:

全大写字母变量命名,一般存放全局变量

#COOKIES_ENABLED = False 这个参数默认cookie 开启

 

 

 

 

你可能感兴趣的:(记录,python)