鱼C论坛

 找回密码
 立即注册
查看: 2857|回复: 5

scrapy框架自带的东西

[复制链接]
发表于 2017-1-12 16:12:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
楼猪最近在学scrapy框架不是很懂那些自带的.py文件是干嘛的? 比如piplines.py  setting.py middlewares.py
去搜那些文档简书都看不懂   
有没有大神以前总结过  可不可以分享出来给我们新手看看   多谢 多谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-1-13 00:52:08 | 显示全部楼层
是python吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-22 15:30:04 | 显示全部楼层

??????不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-22 15:31:41 | 显示全部楼层

框架是python写的啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-9 21:09:51 | 显示全部楼层
piplines.py 处理要抓取的域
settings.py 定义了一些设置,如用户代理 爬虫延时
spiders/:该目录存储实际的爬虫代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-5-13 11:07:27 | 显示全部楼层
一.内置属性
name: spider的名称,唯一要求

allowed_domains: 允许爬取的域名(范围)

start_urls: 初始的urls

custom_settings: 个性化设置,会覆盖全局的设置

crawler:抓取器,spider将绑定到它上面

setting: 配置实例,包括工程中所有的配置变量

logger: 日志实例
---------------------------------------------------------------------------------
二.方法
from_crawler(crawler, *args, **kwargs)
类方法,用于创建spiders

start_request
生成初始的request

make_request_from_url(url)
根据url生成一个request

parse(response)
用来解析网页的内容

log(message, [,level,component])
用来记录日志,这里请使用logger属性来记录(self.logger.info(""))

closed(reason)
当spider关闭的时候调用的方法
----------------------------------------------------------------------------------
extract()提取字符
extract_first(default='not found')提取第一个字符, default为无值时返回的值

----------------------------------------------------------------------------------
Pipeline.py
        作用:1.验证 2.存储
        要使用时请启用它
#ITEM_PIPELINES = {
#    'Zj.pipelines.ZjPipeline': 300#执行大小(顺序),
#}
----------------------------------------------------------------------------------
scrapy.http.Request()
参数
        url,
        callback,#回调函数
        method='GET',
        headers,
        body,
        cookies,
        meta,
        encoding='utf-8',
        priority=0, #优先级1
        don't_filter=False, #是否过滤url
        errback #发生错误时调用的函数

scrapy.http.FormRequest()#用来登录的

def parse(self, response):
        return scrapy.FormRequest.from_response(
                response,
                formdate={'username':'xxxx', 'password':'xxxx'},#用来提交的url的表单数据
                callback=self.xxx
        )
       
scrapy.http.Response()
        urljoin(url)
-----------------------------------------------------------------------------------
对于不完全的xpath代码,无法解析到正确答案
对于相同的html片段(名称、属性等)若xpath代码(HTML名称)则会以数列的形式返回

图片的抓取
xpath('1.|''2.')表示抓取1或者2
setting设置
        ITEM_PIPELINES = {'scrapy.pipelines.images.ImagesPipeline':1}#设置使用的类
        IMAGES_URL_FIELD = 'file_urls'#告诉spider图片链接存储在哪个属性中
        IMAGES_STCRE = r'.'#指定图片存储的path
       
--------------------------------------------------------------------------------
代理IP的使用
#middlewares.py

实现方法:
1.scrapy.spidermiddlewares.SpiderMiddlewares
        实现process_spider_output(response, result, spider):
                request.meta['proxy'] = "url"

2.scrapy.downloadermiddleWares.DownloaderMiddleWares
        实现prodess_request(request, spider):
setting设置
        'scrapy.downloadermiddleWares.httpproxy.HttpProxyMiddleWares':110,
        '设置的处理IP的Class'
---------------------------------------------------------------------------------
处理cookie
def start_request(self):
        url = ""
        cookies = {
                "":"",
                "":""
        }
        return [
                scrapy.Request(url, cookies=cookies)
        ]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 10:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表