最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python scrapy爬取小說代碼案例詳解

 更新時(shí)間:2020年07月09日 09:56:03   作者:咔咔kk  
這篇文章主要介紹了Python scrapy爬取小說代碼案例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

scrapy是目前python使用的最廣泛的爬蟲框架

架構(gòu)圖如下

解釋:

  • Scrapy Engine(引擎): 負(fù)責(zé)Spider、ItemPipeline、Downloader、Scheduler中間的通訊,信號、數(shù)據(jù)傳遞等。
  • Scheduler(調(diào)度器): 它負(fù)責(zé)接受引擎發(fā)送過來的Request請求,并按照一定的方式進(jìn)行整理排列,入隊(duì),當(dāng)引擎需要時(shí),交還給引擎。
  • Downloader(下載器):負(fù)責(zé)下載Scrapy Engine(引擎)發(fā)送的所有Requests請求,并將其獲取到的Responses交還給Scrapy Engine(引擎),由引擎交給Spider來處理,
  • Spider(爬蟲):它負(fù)責(zé)處理所有Responses,從中分析提取數(shù)據(jù),獲取Item字段需要的數(shù)據(jù),并將需要跟進(jìn)的URL提交給引擎,再次進(jìn)入Scheduler(調(diào)度器),
  • Item Pipeline(管道):它負(fù)責(zé)處理Spider中獲取到的Item,并進(jìn)行進(jìn)行后期處理(詳細(xì)分析、過濾、存儲等)的地方.
  • DownloaderMiddlewares(下載中間件):你可以當(dāng)作是一個(gè)可以自定義擴(kuò)展下載功能的組件。Spider Middlewares(Spider中間件):你可以理解為是一個(gè)可以自定擴(kuò)展和操作引擎和Spider中間通信的功能組件(比如進(jìn)入Spider的Responses;和從Spider出去的Requests

一。安裝

pip install Twisted.whl

pip install Scrapy

Twisted的版本要與安裝的python對應(yīng),https://jingyan.baidu.com/article/1709ad8027be404634c4f0e8.html

二。代碼

本實(shí)例采用xpaths解析頁面數(shù)據(jù)

按住shift-右鍵-在此處打開命令窗口

輸入scrapy startproject qiushibaike 創(chuàng)建項(xiàng)目

輸入scrapy genspiderqiushibaike 創(chuàng)建爬蟲

1>結(jié)構(gòu)

2>qiushibaike.py爬蟲文件

import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders.crawl import Rule, CrawlSpider

class BaiduSpider(CrawlSpider):
  name = 'qiushibaike'
  allowed_domains = ['qiushibaike.com']
  start_urls = ['https://www.qiushibaike.com/text/']#啟始頁面
#        
  rules= (
    Rule(LinkExtractor(restrict_xpaths=r'//a[@class="contentHerf"]'),callback='parse_item',follow=True),
    Rule(LinkExtractor(restrict_xpaths=r'//ul[@class="pagination"]/li/a'),follow=True)
  )

  def parse_item(self, response):
    title=response.xpath('//h1[@class="article-title"]/text()').extract_first().strip() #標(biāo)題
    time=response.xpath(' //span[@class="stats-time"]/text()').extract_first().strip() #發(fā)布時(shí)間
    content=response.xpath('//div[@class="content"]/text()').extract_first().replace('  ','\n') #內(nèi)容
    score=response.xpath('//i[@class="number"]/text()').extract_first().strip() #好笑數(shù)

    yield({"title":title,"content":content,"time":time,"score":score});

3>pipelines.py 數(shù)據(jù)管道[code]class QiushibaikePipeline:

class QiushibaikePipeline:
  def open_spider(self,spider):#啟動爬蟲中調(diào)用
    self.f=open("xiaoshuo.txt","w",encoding='utf-8')
  def process_item(self, item, spider):
    info=item.get("title")+"\n"+ item.get("time")+" 好笑數(shù)"+item.get("score")+"\n"+ item.get("content")+'\n'
    self.f.write(info+"\n")
    self.f.flush()
  def close_spider(self,spider):#關(guān)閉爬蟲中調(diào)用
    self.f.close()

4>settings.py

開啟ZhonghengPipeline

ITEM_PIPELINES = {
  'qiushibaike.pipelines.QiushibaikePipeline': 300,
}

5>0main.py運(yùn)行

from scrapy.cmdline import execute
execute('scrapy crawl qiushibaike'.split())

6>結(jié)果:

生成xiaohua.txt,里面有下載的笑話文字

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • jupyter中torch庫的安裝與虛擬環(huán)境的搭建方式

    jupyter中torch庫的安裝與虛擬環(huán)境的搭建方式

    本文詳細(xì)介紹了如何在Windows系統(tǒng)上創(chuàng)建和配置PyTorch環(huán)境,包括安裝Anaconda、創(chuàng)建虛擬環(huán)境、配置鏡像源、安裝CUDA、查找和安裝PyTorch版本、安裝ipykernel以及在Jupyter Notebook中切換環(huán)境
    2025-02-02
  • Pycharm操作Git及GitHub的步驟詳解

    Pycharm操作Git及GitHub的步驟詳解

    這篇文章主要介紹了Pycharm操作Git及GitHub的步驟詳解,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Centos Python2 升級到Python3的簡單實(shí)現(xiàn)

    Centos Python2 升級到Python3的簡單實(shí)現(xiàn)

    下面小編就為大家?guī)硪黄狢entos Python2 升級到Python3的簡單實(shí)現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-06-06
  • Python 多線程抓取圖片效率對比

    Python 多線程抓取圖片效率對比

    Python由于有全鎖局的存在,并不能利用多核優(yōu)勢。所以,如果你的多線程進(jìn)程是CPU密集型的,那多線程并不能帶來效率上的提升,相反還可能會因?yàn)榫€程的頻繁切換,導(dǎo)致效率下降;如果是IO密集型,多線程進(jìn)程可以利用IO阻塞等待時(shí)的空閑時(shí)間執(zhí)行其他線程,提升效率。
    2016-02-02
  • Python集中化管理平臺Ansible介紹與YAML簡介

    Python集中化管理平臺Ansible介紹與YAML簡介

    這篇文章主要介紹了Python集中化管理平臺Ansible介紹與YAML,簡單說明了集中化管理平臺Ansible的功能與YAML語言的基本語法與基本使用技巧,需要的朋友可以參考下
    2019-06-06
  • 使用基于Python的Tornado框架的HTTP客戶端的教程

    使用基于Python的Tornado框架的HTTP客戶端的教程

    這篇文章主要介紹了制作一個(gè)基于Python的Tornado框架的HTTP客戶端的教程,Tornado的異步特性使其能夠獲得很好的性能,需要的朋友可以參考下
    2015-04-04
  • Python字節(jié)碼與程序執(zhí)行過程詳解

    Python字節(jié)碼與程序執(zhí)行過程詳解

    這篇文章主要為大家介紹了Python字節(jié)碼與程序執(zhí)行過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 計(jì)算Python Numpy向量之間的歐氏距離實(shí)例

    計(jì)算Python Numpy向量之間的歐氏距離實(shí)例

    這篇文章主要介紹了計(jì)算Python Numpy向量之間的歐氏距離實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python利用pandas和matplotlib實(shí)現(xiàn)繪制柱狀折線圖

    Python利用pandas和matplotlib實(shí)現(xiàn)繪制柱狀折線圖

    這篇文章主要為大家詳細(xì)介紹了如何使用?Python?中的?Pandas?和?Matplotlib?庫創(chuàng)建一個(gè)柱狀圖與折線圖結(jié)合的數(shù)據(jù)可視化圖表,感興趣的可以了解一下
    2023-11-11
  • python繪制直方圖和密度圖的實(shí)例

    python繪制直方圖和密度圖的實(shí)例

    今天小編就為大家分享一篇python繪制直方圖和密度圖的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07

最新評論

沁源县| 收藏| 万荣县| 来宾市| 若羌县| 开原市| 开原市| 和龙市| 长寿区| 泰顺县| 和平区| 万载县| 阳西县| 韶山市| 金阳县| 策勒县| 成武县| 监利县| 洛浦县| 广河县| 兴城市| 保德县| 布尔津县| 黄龙县| 即墨市| 剑阁县| 宁河县| 水富县| 平舆县| 深泽县| 永登县| 盐源县| 大连市| 连南| 桑植县| 莱州市| 东乡| 昌都县| 静海县| 孙吴县| 饶平县|