Python爬蟲第九天:crawl spider|日志|代理|數(shù)據(jù)存儲

內(nèi)容簡述:? ? ?? ??

? ??一:Crawl Spider? ? ? ? ?

? ??二:日志? ? ? ? ?

? ??三:Request和Response總結(jié)

? ? 四:代理

? ? 五:Scrapy實現(xiàn)模擬登錄

? ? 六:數(shù)據(jù)存儲到數(shù)據(jù)庫mysql中

一:crawl spider

? ? ?CrawlSpider是一個類爆捞,父類是scrapy.Spider幼苛。

????CrawlSpider不僅有Spider的功能菜循,還有自己獨特功能

特有功能:CrawlSpider可以定義規(guī)則菠剩,解析html時可根據(jù)鏈接規(guī)則提取出指定鏈接戈抄,然后再向這些鏈接發(fā)送請求年柠。

通常用于:如果有需要跟進鏈接的需求狡相,爬取網(wǎng)頁之后梯轻,需要提取鏈接再次爬取。

如何提取鏈接尽棕?

??????? 鏈接提取器喳挑,在這里就可以寫規(guī)則提取指定鏈接

??????? scrapy.linkextractors.LinkExtractor(

?? ??? ??? allow = (),???#正則表達式? ?????? 提取符合正則的鏈接

?? ??? ??? deny = (),???? # (不用)正則表達式? 不提取符合正則的鏈接

?? ?? ???? allow_domains = (),? #(不用)允許的域名

?? ??? ??? deny_domains = (),?? #(不用)不允許的域名

?? ??? ??? restrict_xpaths = (), # xpath,提取符合xpath規(guī)則的鏈接

?? ??? ??? retrict_css = ()?#提取符合選擇器規(guī)則的鏈接)

案例】:電影天堂-提取所有頁碼鏈接

scrapy shellhttp://www.dytt8.net/html/gndy/dyzz/index.html

????????????????????from scrapy.linkextractorsimport LinkExtractor

正則用法

??????????????????? links1 = LinkExtractor(allow='list_23_\d+\.html')

?????????????????? links1.extract_links(response) 查看提取到的所有鏈接

??xpath用法

??????? ????????????links2 =LinkExtractor(restrict_xpaths='//div[@class="x"]')

? ? ? ? ? ? ? ? ? ?【注意】這里的xpath不帶a

? ? ??css用法

????????????????? links3 = LinkExtractor(restrict_css='.x')【注意】這里的選擇器不帶a

案例】:讀書網(wǎng)-散文隨筆

https://www.dushu.com/book/1163.html

????????? ????????scrapy startproject readbook1

scrapy genspider -t crawl readbookwww.dushu.com

crawlspider運行原理:

【實操-spiders注意說明】

????????rules =(Rule(LinkExtractor(allow=r'/book/1163_\d+\.html'), callback='parse_item',follow=False),)

?? ??? 【注1】callback只能寫函數(shù)名字符串, callback='parse_item'

?? ??? 【注2】在基本的spider中滔悉,如果重新發(fā)送請求伊诵,那里的callback寫的是?? callback=self.parse_item

二:日志信息和日志等級

????? 級別:

??????? CRITICAL:嚴重錯誤

??????? ERROR:一般錯誤

??????? WARNING:警告

??????? INFO:一般信息

??????? DEBUG:調(diào)試信息

??????? 默認的級別為DEBUG,會顯示上面所有的信息

??????? 在配置文件中?settings.py設置

LOG_LEVEL:設置日志顯示等級回官,此舉動決定了顯示哪些曹宴,不顯示哪些

LOG_FILE:將屏幕顯示的信息記錄到文件中,屏幕不再顯示

三:Request和response總結(jié)

????? Request(類)

get請求

scrapy.Request(url=url,callback=self.parse_item,meta={'item':item},headers=headers)

??????? url:要請求的地址

??????? callback:響應成功之后的回調(diào)函數(shù)

??????? meta:參數(shù)傳遞

??????? headers:定制頭信息歉提,一般不用

????? response(對象)

??????? response.text:字符串格式文本

??????? response.body:二進制格式文本

??????? response.url:當前響應的url地址

??????? response.status:狀態(tài)碼

??????? response.xpath():篩選想要的數(shù)據(jù)

??????? response.css(): 篩選想要的數(shù)據(jù)

post請求

????? 【溫馨提示】

如果直接發(fā)送post請求笛坦,start_urls和parse方法就用不到

因為重寫了start_requests(self)這個方法,

案例】:百度翻譯

????? scrapy.FormRequest(url=url,headers=headers, callback=self.parse_item

, formdata=data)

??????? url:要發(fā)送的post地址

??????? headers:定制頭信息

??????? callback:回調(diào)函數(shù)

??????? formdata: post所攜帶的數(shù)據(jù)【字典】

四:代理

????? 通過下載中間件來進行添加

????? (1)到settings.py中苔巨,打開一個選項

?????????? DOWNLOADER_MIDDLEWARES配置選項

????? (2)到middlewares.py中找到以下方法寫代碼

????? ?defprocess_request(self, request, spider):

?? ????? request.meta['proxy'] ='https://113.68.202.99:8888'

?? ???????return None

五:scrapy實現(xiàn)模擬登錄

?? 【案例】豆瓣-douban

https://accounts.douban.com/login

????? 【溫馨提示】

????????????Douban基于安全考慮-比較靠譜的網(wǎng)站版扩,登錄時需攜帶Cookie。

所以需要首先向登錄地址發(fā)送get請求侄泽,然后再向post地址發(fā)送post請求礁芦,因為中間要攜帶cookie,才能登錄成功

??????????? 請求模式【get==>post==>get】

六:存儲到mysql中

?? 【案例】-讀書項目

?????????? from scrapy.utils.project importget_project_settings

?? ????????settings = get_project_settings()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末悼尾,一起剝皮案震驚了整個濱河市柿扣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌诀豁,老刑警劉巖窄刘,帶你破解...
    沈念sama閱讀 221,576評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窥妇,死亡現(xiàn)場離奇詭異舷胜,居然都是意外死亡,警方通過查閱死者的電腦和手機活翩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評論 3 399
  • 文/潘曉璐 我一進店門烹骨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人材泄,你說我怎么就攤上這事沮焕。” “怎么了拉宗?”我有些...
    開封第一講書人閱讀 168,017評論 0 360
  • 文/不壞的土叔 我叫張陵峦树,是天一觀的道長辣辫。 經(jīng)常有香客問我,道長魁巩,這世上最難降的妖魔是什么急灭? 我笑而不...
    開封第一講書人閱讀 59,626評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮谷遂,結(jié)果婚禮上葬馋,老公的妹妹穿的比我還像新娘。我一直安慰自己肾扰,他們只是感情好畴嘶,可當我...
    茶點故事閱讀 68,625評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著集晚,像睡著了一般窗悯。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上甩恼,一...
    開封第一講書人閱讀 52,255評論 1 308
  • 那天蟀瞧,我揣著相機與錄音,去河邊找鬼条摸。 笑死悦污,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的钉蒲。 我是一名探鬼主播切端,決...
    沈念sama閱讀 40,825評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼顷啼!你這毒婦竟也來了踏枣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,729評論 0 276
  • 序言:老撾萬榮一對情侶失蹤钙蒙,失蹤者是張志新(化名)和其女友劉穎茵瀑,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體躬厌,經(jīng)...
    沈念sama閱讀 46,271評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡马昨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,363評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了扛施。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸿捧。...
    茶點故事閱讀 40,498評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖疙渣,靈堂內(nèi)的尸體忽然破棺而出匙奴,到底是詐尸還是另有隱情,我是刑警寧澤妄荔,帶...
    沈念sama閱讀 36,183評論 5 350
  • 正文 年R本政府宣布泼菌,位于F島的核電站谍肤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏哗伯。R本人自食惡果不足惜谣沸,卻給世界環(huán)境...
    茶點故事閱讀 41,867評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望笋颤。 院中可真熱鬧乳附,春花似錦、人聲如沸伴澄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽非凌。三九已至举农,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間敞嗡,已是汗流浹背颁糟。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留喉悴,地道東北人棱貌。 一個月前我還...
    沈念sama閱讀 48,906評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像箕肃,于是被迫代替她去往敵國和親婚脱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,507評論 2 359