5.spiders(文件夹)
一、基礎(chǔ)知識(shí)
? 1. Spiders?文件夾
??用于編寫爬蟲規(guī)則,可以在已有的___init__.py文件中編寫具體的爬蟲規(guī)則但是實(shí)際開發(fā)中可能有多個(gè)爬蟲規(guī)則,所以建議一個(gè)爬蟲規(guī)則用一個(gè)文件表示,這樣便于維護(hù)和管理
2.?代碼
# -*- coding: utf-8 -*- import scrapy from baidu.items import BaiduItem from scrapy.selector import Selector #自帶的數(shù)據(jù)清洗模塊 from scrapy.spiders import Spiderclass SpiderSpodersSpider(scrapy.Spider):name = 'Spider_spoders'#必須設(shè)置,而且是唯一的命名,用于運(yùn)行爬蟲allowed_domains = ['baidu.com']start_urls = ['http://baidu.com/list?cid=110','http://baidu.com/list?cid=110102']#函數(shù)parse處理相應(yīng)內(nèi)容,函數(shù)名不能更改def parse(self, response):sel=Selector(response)#將相應(yīng)內(nèi)容生成selector,用于數(shù)據(jù)的清洗items=[]item=BaiduItem()#定義BaiduItem對(duì)象title=sel.xpath('//div[@class="question-title"]/a/text()').extract()for i in title:items.append(i)items['TitleName']=itemsreturn item?代碼說明:
(1)?屬性name不能為空,是程序運(yùn)行入口,如果有多個(gè)爬蟲規(guī)則,那么每個(gè)規(guī)則的屬性name不能重復(fù)
(2)?Allowed_domains是設(shè)置允許訪問的域名,如果為空,就說明對(duì)域名不做訪問限制
(3)?Start_urls用于設(shè)置爬取對(duì)象的URL,程序運(yùn)行時(shí)會(huì)對(duì)start_urls遍歷處理
(4)?類方法parse()用于處理網(wǎng)站的相應(yīng)內(nèi)容,如果爬蟲引擎是Spider,方法名就不能更改
(5)?爬蟲規(guī)則以類為實(shí)現(xiàn)單位,并繼承父類Spider,Spider是Scrapy的爬蟲引擎
3. spiders介紹
(1)?Spider是定義如何抓取某個(gè)網(wǎng)站的類,包括如何執(zhí)行抓取(訪問URL)以及如何從頁面中提取結(jié)構(gòu)化數(shù)據(jù)(抓取數(shù)據(jù))。Spider是開發(fā)者自定義的類,用于為特定的網(wǎng)抓取和解析頁面。
?(2)Spider執(zhí)行周期:
4?Spider的種類
(1)Scrpay.spiders.Spider:最簡單的spider類,其他的類是繼承該類,不提供任何的特殊功能,只提供一個(gè)默認(rèn)的start_requests()方法,請求從start_urls開始,Spider發(fā)送請求,并使用函數(shù)parse處理每個(gè)響應(yīng)內(nèi)容。
(2)Scrapy.spiders.CrawlSpider:抓取常規(guī)網(wǎng)站最常用的spider,提供了一個(gè)方便機(jī)制,可通過定義一組規(guī)則來跟蹤URL,適合全站數(shù)據(jù)爬取和通用的爬蟲開發(fā)。除了擁有scrapy.spider.Spider全部屬性之外,還有特定屬性rules和parse_start_url方法
轉(zhuǎn)載于:https://www.cnblogs.com/luoyw/p/10587241.html
總結(jié)
以上是生活随笔為你收集整理的5.spiders(文件夹)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信APP支付配置文档
- 下一篇: html答题游戏代码,html5+css