• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
    問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
    當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

    scrapy抓取學(xué)院新聞報(bào)告實(shí)例

    來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 14:14:09
    文檔

    scrapy抓取學(xué)院新聞報(bào)告實(shí)例

    scrapy抓取學(xué)院新聞報(bào)告實(shí)例:抓取四川大學(xué)公共管理學(xué)院官網(wǎng)()所有的新聞咨詢.實(shí)驗(yàn)流程1.確定抓取目標(biāo).2.制定抓取規(guī)則.3.'編寫(xiě)/調(diào)試'抓取規(guī)則.4.獲得抓取數(shù)據(jù)1.確定抓取目標(biāo)我們這次需要抓取的目標(biāo)為四川大學(xué)公共管理學(xué)院的所有新聞資訊.于是我們需要知道公管學(xué)院官網(wǎng)的布局結(jié)構(gòu).
    推薦度:
    導(dǎo)讀scrapy抓取學(xué)院新聞報(bào)告實(shí)例:抓取四川大學(xué)公共管理學(xué)院官網(wǎng)()所有的新聞咨詢.實(shí)驗(yàn)流程1.確定抓取目標(biāo).2.制定抓取規(guī)則.3.'編寫(xiě)/調(diào)試'抓取規(guī)則.4.獲得抓取數(shù)據(jù)1.確定抓取目標(biāo)我們這次需要抓取的目標(biāo)為四川大學(xué)公共管理學(xué)院的所有新聞資訊.于是我們需要知道公管學(xué)院官網(wǎng)的布局結(jié)構(gòu).

    分別對(duì)應(yīng)的知識(shí)點(diǎn)為:

    1.爬出一個(gè)頁(yè)面下的基礎(chǔ)數(shù)據(jù).
    2.通過(guò)爬到的數(shù)據(jù)進(jìn)行二次爬取.
    3.通過(guò)循環(huán)對(duì)網(wǎng)頁(yè)進(jìn)行所有數(shù)據(jù)的爬取.

    話不多說(shuō),現(xiàn)在開(kāi)干.

    3.1爬出一頁(yè)新聞欄目下的所有新聞鏈接


    Paste_Image.png

    通過(guò)對(duì)新聞欄目的源代碼分析,我們發(fā)現(xiàn)所抓數(shù)據(jù)的結(jié)構(gòu)為


    Paste_Image.png

    那么我們只需要將爬蟲(chóng)的選擇器定位到(li:newsinfo_box_cf),再進(jìn)行for循環(huán)抓取即可.

    編寫(xiě)代碼
    import scrapyclass News2Spider(scrapy.Spider):
     name = "news_info_2"
     start_urls = ["http://ggglxy.scu.edu.cn/index.php?c=special&sid=1&page=1",
     ]def parse(self, response):for href in response.xpath("//div[@class='newsinfo_box cf']"):
     url = response.urljoin(href.xpath("div[@class='news_c fr']/h3/a/@href").extract_first())

    測(cè)試,通過(guò)!


    Paste_Image.png

    3.2通過(guò)爬到的一頁(yè)新聞鏈接進(jìn)入到新聞詳情爬取所需要數(shù)據(jù)(主要是新聞內(nèi)容)

    現(xiàn)在我獲得了一組URL,現(xiàn)在我需要進(jìn)入到每一個(gè)URL中抓取我所需要的標(biāo)題,時(shí)間和內(nèi)容,代碼實(shí)現(xiàn)也挺簡(jiǎn)單,只需要在原有代碼抓到一個(gè)URL時(shí)進(jìn)入該URL并且抓取相應(yīng)的數(shù)據(jù)即可.所以,我只需要再寫(xiě)一個(gè)進(jìn)入新聞詳情頁(yè)的抓取方法,并且使用scapy.request調(diào)用即可.

    編寫(xiě)代碼
    #進(jìn)入新聞詳情頁(yè)的抓取方法
    def parse_dir_contents(self, response):item = GgglxyItem()item['date'] = response.xpath("//div[@class='detail_zy_title']/p/text()").extract_first()item['href'] = responseitem['title'] = response.xpath("//div[@class='detail_zy_title']/h1/text()").extract_first()
     data = response.xpath("//div[@class='detail_zy_c pb30 mb30']")item['content'] = data[0].xpath('string(.)').extract()[0]
     yield item

    整合進(jìn)原有代碼后,有:

    import scrapyfrom ggglxy.items import GgglxyItemclass News2Spider(scrapy.Spider):
     name = "news_info_2"
     start_urls = ["http://ggglxy.scu.edu.cn/index.php?c=special&sid=1&page=1",
     ]def parse(self, response):for href in response.xpath("//div[@class='newsinfo_box cf']"):
     url = response.urljoin(href.xpath("div[@class='news_c fr']/h3/a/@href").extract_first())#調(diào)用新聞抓取方法yield scrapy.Request(url, callback=self.parse_dir_contents)#進(jìn)入新聞詳情頁(yè)的抓取方法 def parse_dir_contents(self, response):
     item = GgglxyItem()
     item['date'] = response.xpath("//div[@class='detail_zy_title']/p/text()").extract_first()
     item['href'] = response
     item['title'] = response.xpath("//div[@class='detail_zy_title']/h1/text()").extract_first()
     data = response.xpath("//div[@class='detail_zy_c pb30 mb30']")
     item['content'] = data[0].xpath('string(.)').extract()[0]yield item

    測(cè)試,通過(guò)!


    Paste_Image.png

    這時(shí)我們加一個(gè)循環(huán):

    NEXT_PAGE_NUM = 1 
    
    NEXT_PAGE_NUM = NEXT_PAGE_NUM + 1if NEXT_PAGE_NUM<11:next_url = 'http://ggglxy.scu.edu.cn/index.php?c=special&sid=1&page=%s' % NEXT_PAGE_NUM
     yield scrapy.Request(next_url, callback=self.parse)

    加入到原本代碼:

    import scrapyfrom ggglxy.items import GgglxyItem
    
    NEXT_PAGE_NUM = 1class News2Spider(scrapy.Spider):
     name = "news_info_2"
     start_urls = ["http://ggglxy.scu.edu.cn/index.php?c=special&sid=1&page=1",
     ]def parse(self, response):for href in response.xpath("//div[@class='newsinfo_box cf']"):
     URL = response.urljoin(href.xpath("div[@class='news_c fr']/h3/a/@href").extract_first())yield scrapy.Request(URL, callback=self.parse_dir_contents)global NEXT_PAGE_NUM
     NEXT_PAGE_NUM = NEXT_PAGE_NUM + 1if NEXT_PAGE_NUM<11:
     next_url = 'http://ggglxy.scu.edu.cn/index.php?c=special&sid=1&page=%s' % NEXT_PAGE_NUMyield scrapy.Request(next_url, callback=self.parse) def parse_dir_contents(self, response):
     item = GgglxyItem() 
     item['date'] = response.xpath("//div[@class='detail_zy_title']/p/text()").extract_first()
     item['href'] = response 
     item['title'] = response.xpath("//div[@class='detail_zy_title']/h1/text()").extract_first()
     data = response.xpath("//div[@class='detail_zy_c pb30 mb30']")
     item['content'] = data[0].xpath('string(.)').extract()[0] yield item

    測(cè)試:


    Paste_Image.png

    抓到的數(shù)量為191,但是我們看官網(wǎng)發(fā)現(xiàn)有193條新聞,少了兩條.
    為啥呢?我們注意到log的error有兩條:
    定位問(wèn)題:原來(lái)發(fā)現(xiàn),學(xué)院的新聞欄目還有兩條隱藏的二級(jí)欄目:
    比如:


    Paste_Image.png


    對(duì)應(yīng)的URL為


    Paste_Image.png


    URL都長(zhǎng)的不一樣,難怪抓不到了!
    那么我們還得為這兩條二級(jí)欄目的URL設(shè)定專(zhuān)門(mén)的規(guī)則,只需要加入判斷是否為二級(jí)欄目:

     if URL.find('type') != -1: yield scrapy.Request(URL, callback=self.parse)

    組裝原函數(shù):

    import scrapy
    from ggglxy.items import GgglxyItem
    
    NEXT_PAGE_NUM = 1class News2Spider(scrapy.Spider):
     name = "news_info_2"
     start_urls = ["http://ggglxy.scu.edu.cn/index.php?c=special&sid=1&page=1",
     ]def parse(self, response):for href in response.xpath("//div[@class='newsinfo_box cf']"):
     URL = response.urljoin(href.xpath("div[@class='news_c fr']/h3/a/@href").extract_first())if URL.find('type') != -1:yield scrapy.Request(URL, callback=self.parse)yield scrapy.Request(URL, callback=self.parse_dir_contents)
     global NEXT_PAGE_NUM
     NEXT_PAGE_NUM = NEXT_PAGE_NUM + 1if NEXT_PAGE_NUM<11:
     next_url = 'http://ggglxy.scu.edu.cn/index.php?c=special&sid=1&page=%s' % NEXT_PAGE_NUMyield scrapy.Request(next_url, callback=self.parse) def parse_dir_contents(self, response):
     item = GgglxyItem() 
     item['date'] = response.xpath("//div[@class='detail_zy_title']/p/text()").extract_first()
     item['href'] = response 
     item['title'] = response.xpath("//div[@class='detail_zy_title']/h1/text()").extract_first()
     data = response.xpath("//div[@class='detail_zy_c pb30 mb30']")
     item['content'] = data[0].xpath('string(.)').extract()[0] yield item

    測(cè)試:


    Paste_Image.png

    我們發(fā)現(xiàn),抓取的數(shù)據(jù)由以前的193條增加到了238條,log里面也沒(méi)有error了,說(shuō)明我們的抓取規(guī)則OK!

    4.獲得抓取數(shù)據(jù)

     scrapy crawl news_info_2 -o 0016.json

    聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    scrapy抓取學(xué)院新聞報(bào)告實(shí)例

    scrapy抓取學(xué)院新聞報(bào)告實(shí)例:抓取四川大學(xué)公共管理學(xué)院官網(wǎng)()所有的新聞咨詢.實(shí)驗(yàn)流程1.確定抓取目標(biāo).2.制定抓取規(guī)則.3.'編寫(xiě)/調(diào)試'抓取規(guī)則.4.獲得抓取數(shù)據(jù)1.確定抓取目標(biāo)我們這次需要抓取的目標(biāo)為四川大學(xué)公共管理學(xué)院的所有新聞資訊.于是我們需要知道公管學(xué)院官網(wǎng)的布局結(jié)構(gòu).
    推薦度:
    標(biāo)簽: 大學(xué) 新聞 案例
    • 熱門(mén)焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門(mén)推薦

    專(zhuān)題
    Top
    主站蜘蛛池模板: 四虎影永久在线观看精品| 国产欧美精品区一区二区三区| 久久精品一区二区三区不卡| 日韩精品欧美国产在线| 国产精品成人观看视频免费| 热RE99久久精品国产66热| 日韩精品免费视频| HEYZO无码综合国产精品| 伊人久久精品影院| 久久久久无码精品| 国产成人精品福利网站在线观看 | 国产成人精品手机在线观看| 亚洲AV成人精品日韩一区18p| 成人午夜精品亚洲日韩| 久久99热精品| 国产精品你懂得| 91国内外精品自在线播放| 久久亚洲美女精品国产精品| 午夜精品久久久久成人| 精品久久久久久久久久中文字幕 | 国产精品自在线拍国产电影| 精品亚洲综合久久中文字幕| 国产精品视频一区二区噜噜 | 久久99国产精品二区不卡| 99久久久精品| 99re这里只有精品6| 国产精品99精品久久免费| 久久精品一本到99热免费| 无码人妻精品中文字幕| 亚洲高清国产拍精品26U| 伊人久久精品影院| 四虎成人精品永久免费AV| 无码国内精品人妻少妇蜜桃视频| 一本色道久久综合亚洲精品| 亚洲精品无码久久久久去q| 亚洲综合精品网站| 亚洲精品高清国产一线久久| 日本午夜精品一区二区三区电影| 欧洲精品久久久av无码电影| 乱色精品无码一区二区国产盗| 全球AV集中精品导航福利|