創(chuàng)建項(xiàng)目
scrapy startproject 項(xiàng)目名字
創(chuàng)建爬蟲
scrapy genspider -t crawl 爬蟲名字 域
rules 規(guī)則屬性的參數(shù):是一個(gè)元阻,可以放多個(gè)Rule 對(duì)象
創(chuàng)建Rule:
LinkExtractor:設(shè)定提取的規(guī)則
(allow,deny,allow_dome...)
callback 設(shè)置回調(diào)函數(shù)
follwer 是否跟進(jìn)
rules = (
allow:一般跟一個(gè)正則表達(dá)式追迟,表示允許的url*********************
deny:表示一個(gè)正則表達(dá)式,符合正則表達(dá)式的鏈接悍及,我們不鏈接酗失,優(yōu)先級(jí)比allow高
allowed_domains:提取額鏈接,必須在我設(shè)置的域下面
deny_domains:提取鏈接時(shí)擎析,一定不能提取deny_domains設(shè)置的域下
restrict_xpaths:剛提取連接的時(shí)候我們可以定位到耨一些標(biāo)簽,提取標(biāo)簽下符合規(guī)則的鏈接********
tags:可以指定要提取那些標(biāo)簽
attrs:;;可以提取哪一屬性
restrict_css:當(dāng)提取連接時(shí)可以使用css語(yǔ)法 **************
process_links:設(shè)置一個(gè)函數(shù),根據(jù)正則獲取的url,可以在回調(diào)函數(shù)中獲取到
process_request:設(shè)置一個(gè)函數(shù)横浑,可以在這個(gè)回調(diào)方法中攔截所有根據(jù)正則規(guī)則提取到的url構(gòu)建的Request對(duì)象
Rule(LinkExtractor(
allow=('.*?qwd=&p=\d+',),
deny=(),
allowed_domains=(),
deny_domains=(),
restrict_xpaths=(),
tags=(),
attrs=(),
restrict_css=()
),
注意:設(shè)置回調(diào)的時(shí)候一定不能重寫parse方法
2园担、要活取起始url的響應(yīng)結(jié)果奏纪,必須重寫parse_start_url
3、在設(shè)置Rule對(duì)象的時(shí)候京髓,如果沒(méi)有callback回調(diào)函數(shù),表示默認(rèn)跟進(jìn)
什么時(shí)候 會(huì)用到用用爬蟲商架?
當(dāng)提取數(shù)據(jù)的目標(biāo)網(wǎng)站的網(wǎng)址很有規(guī)律堰怨,并且各個(gè)模塊很清晰,我們就可以使用通用爬蟲