python爬蟲小練手之用Scrapy爬取某小說網(wǎng)站中三國演義

一值纱、學習課題

使用Scrapy爬取某小說網(wǎng)站的內(nèi)容

二、學習目標

1.掌握Scrapy的安裝方法
2.掌握Scrapy的基本用法

三宁否、所用到的工具

1.pycharm
2.Scrapy庫
3.re(正則)庫 (還可以用etree,xpath,bs4等)
4.Powershell

四桂敛、開始項目

(一)安裝Scrapy庫

打開cmd命令行工具,輸入以下代碼

pip install scrapy
  • 拓展內(nèi)容:
    調(diào)用鏡像庫
    1.臨時使用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scrapy

2.設(shè)為默認(升級 pip 到最新的版本 (>=10.0.0) 后進行配置)

pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

(二)創(chuàng)建項目

1.在桌面(或別處)創(chuàng)建一個文件夾筷弦,命名為scrapy項目肋演,作為存放scrapy項目的文件夾。

title.png

2.在文件夾中按住shfit鍵+鼠標右鍵調(diào)出powershell窗口
3.輸入代碼:

scrapy startproject sgyy   #sgyy為項目名稱

4.scrapy項目文件目錄下自動生成了sgyy文件夾

(三)創(chuàng)建爬蟲

1.在sgyy目錄下進入powershell
2.輸入代碼:

scrapy genspider sgyyspider purepen.com    #scrapy genspider+爬蟲名+域名
#運行后在scrapy項目\sgyy\sgyy\spiders 目錄下生成了sgyyspider.py文件奸笤,這就是創(chuàng)建的爬蟲核心

(四)編寫爬蟲

在pycharm中打開sgyyspider.py文件進行編寫爬蟲

# -*- coding: utf-8 -*-
import scrapy   
import re           #正則


class SgyyspiderSpider(scrapy.Spider):
    name = 'sgyySpider'                      #爬蟲名字
    allowed_domains = ['purepen.com']        #網(wǎng)站
    start_urls = ['http://www.purepen.com/sgyy/index.htm']    #第一次開始采集的網(wǎng)址(要爬取的網(wǎng)站)


    def parse(self, response):
#   從這里以上是scrapy自動創(chuàng)建好的內(nèi)容,start_urls采集的信息返回交給了response
        html = re.findall('<TD><A HREF="(.*?)">',response.text)
        #.*?匹配任何你需要的信息 除了換行
        #.匹配任何單個字符 除了換行符
        #*數(shù)量詞 任意多個字符
        #哼鬓?在數(shù)量詞后表示非貪婪模式
        for i in html:
            url = f'http://www.purepen.com/sgyy/{i}'  #.format
#            print(url)
            yield scrapy.Request(url, callback=self.parseDetail)
    def parseDetail (self,response):
        text = re.findall('face="宋體" size="3">(.*?)</font>', response.text, flags=re.S)
        title = re.findall('<font color="#000000"  size="3"><br><br><b>(.*?)</b>', response.text)
        if text and title:
            self.save2File(title[0],text[0])

    @classmethod
    def save2File(cls, title, text):
        with open(f'{title}.text', 'a', encoding='utf-8')as fp:
            fp.write(text)

(五)運行爬蟲

在爬蟲文件目錄下打開powershell輸入以下代碼

scrapy crawl sgyySpider

(六)運行結(jié)果

在爬蟲文件夾下生成了我們想要爬取的小說內(nèi)容监右,每一章節(jié)為一個txt文件,共120個

五异希、總結(jié)

(一)關(guān)于re正則表達式

1.(.*?)匹配任何你需要的信息 除了換行
2.如果想讓匹配的信息包括換行健盒,則在re.findall()中傳入?yún)?shù):

flags=re.S

3.(.*?)加括號與不加括號的區(qū)別:
加括號是返回匹配到的數(shù)據(jù)绒瘦,不包括其他匹配值
不加括號返回匹配到的數(shù)據(jù),包括其他匹配值
例如:

<META content="《三國演義》" name=description>     #《三國演義》為需要的信息
'<META content="(.*?)" name=description>'         #會返回'《三國演義》'
'<META content=".*?" name=description>'           #會返回<META content="《三國演義》" name=description>

4.關(guān)于正則表達式扣癣,有待進一步學習(MARK)

(二)yield的用法

挖個坑惰帽,找時間專題進行學習(MARK)

(三)@classmethod

挖個坑,找時間專題進行學習(MARK)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末父虑,一起剝皮案震驚了整個濱河市该酗,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌士嚎,老刑警劉巖呜魄,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異莱衩,居然都是意外死亡爵嗅,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門笨蚁,熙熙樓的掌柜王于貴愁眉苦臉地迎上來睹晒,“玉大人,你說我怎么就攤上這事括细∥焙埽” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵勒极,是天一觀的道長是掰。 經(jīng)常有香客問我,道長辱匿,這世上最難降的妖魔是什么键痛? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮匾七,結(jié)果婚禮上絮短,老公的妹妹穿的比我還像新娘。我一直安慰自己昨忆,他們只是感情好丁频,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著邑贴,像睡著了一般席里。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拢驾,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天奖磁,我揣著相機與錄音,去河邊找鬼繁疤。 笑死咖为,一個胖子當著我的面吹牛秕狰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播躁染,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鸣哀,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了吞彤?” 一聲冷哼從身側(cè)響起我衬,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎备畦,沒想到半個月后低飒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡懂盐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年褥赊,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片莉恼。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡拌喉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出俐银,到底是詐尸還是另有隱情尿背,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布捶惜,位于F島的核電站田藐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏吱七。R本人自食惡果不足惜汽久,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望踊餐。 院中可真熱鬧景醇,春花似錦、人聲如沸吝岭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽窜管。三九已至散劫,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間幕帆,已是汗流浹背获搏。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蜓肆,地道東北人颜凯。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像仗扬,于是被迫代替她去往敵國和親症概。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 前言 爬蟲就是請求網(wǎng)站并提取數(shù)據(jù)的自動化程序早芭,其中請求彼城,提取,自動化是爬蟲的關(guān)鍵退个。Python作為一款出色的膠水語...
    王奧OX閱讀 3,376評論 1 8
  • 最近要采集一些數(shù)據(jù)募壕,給項目做分析用。在小伙伴的推薦下语盈,先去讀了《Python網(wǎng)絡(luò)數(shù)據(jù)采集》這本書舱馅。Python是很...
    依吖閱讀 5,499評論 1 2
  • 這句話今年快爛大街了吧代嗤。 身邊的同事也激情滿滿興致高昂,要放棄工作拋開一切義無反顧去尋找 詩和遠方的田野缠借。當她問我...
    伊人成佛閱讀 384評論 0 0
  • 作者【美】琳達·休·帕克 陳蕙慧翻譯 河北教育出版社 這本書我很久之前就已經(jīng)看完了干毅,但一直沒有時間寫個感受。 一個...
    河南鄭州毛秋風閱讀 493評論 0 0
  • 今天看了《活著》 福貴的人生好艱難泼返。 年少時硝逢,家庭優(yōu)渥,但因為賭博绅喉,把家產(chǎn)輸?shù)酶筛蓛魞羟耄赣H被氣死了,帶著身孕的...
    情小歌閱讀 375評論 0 1