python Scrapy框架2—数据抓取

spider中的流程

spider数据抓取

在scrapy框架中,我们通过命令

scrapy crawl itcast

去执行spiders中的python脚本。

这里的itcast 是name中的内容

两种初始化url的方法

1、常量start_urls,并且需要定义一个方法parse()

start_urls = [  #另外一种写法,无需定义start_requests方法
    'http://lab.scrapyd.cn/page/1/',
    'http://lab.scrapyd.cn/page/2/',
]

2、直接定义一个方法:star_requests()

def start_requests(self):
    urls = [ #爬取的链接由此方法通过下面链接爬取页面
        'http://lab.scrapyd.cn/page/1/',
        'http://lab.scrapyd.cn/page/2/',
    ]
    for url in urls:
        yield scrapy.Request(url=url, callback=self.parse)

处理数据

def parse(self, response):
    self.log(response.url)
    page = response.url.split("/")[-2]    
    #根据上面的链接提取分页,如:/page/1/,提取到的就是:1
    filename = 'mingyan-%s.html' % page    
    #拼接文件名,如果是第一页,最终文件名便是:mingyan-1.html
    with open(filename, 'wb') as f:        
        #python文件操作,不多说了;
        f.write(response.body)             
        #刚才下载的页面去哪里了?response.body就代表了刚才下载的页面!
    self.log('保存文件: %s' % filename)      # 打个日志

这里的response就是请求到的数据

 

 

 

 

 

 

 

 

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐