国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用PyCharm編寫Scrapy爬蟲程序,爬取古詩詞網(wǎng)站

這篇具有很好參考價(jià)值的文章主要介紹了使用PyCharm編寫Scrapy爬蟲程序,爬取古詩詞網(wǎng)站。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

使用PyCharm編寫Scrapy爬蟲程序,爬取古詩詞網(wǎng)站

本次測(cè)試案例參考廈門大學(xué)數(shù)據(jù)庫實(shí)驗(yàn)室
鏈接: https://dblab.xmu.edu.cn/blog/3937/
在PyCharm中新建一個(gè)名稱為“scrapyProject”的工程,如下圖所示,Python解釋器就選擇我們之前已經(jīng)安裝好的
本次測(cè)試環(huán)境為
Python3.7.6
使用PyCharm編寫Scrapy爬蟲程序,爬取古詩詞網(wǎng)站使用PyCharm編寫Scrapy爬蟲程序,爬取古詩詞網(wǎng)站
在“scrapyProject”工程底部打開Terminal窗口(如下圖所示),在命令提示符后面輸入命令“pip install scrapy”,下載Scrapy框架所需文件。
使用PyCharm編寫Scrapy爬蟲程序,爬取古詩詞網(wǎng)站
下載完成后,繼續(xù)在終端中輸入命令“scrapy startproject poemScrapy”,創(chuàng)建Scrapy爬蟲框架相關(guān)目錄和文件。創(chuàng)建完成以后的具體目錄結(jié)構(gòu)如下圖所示,這些目錄和文件都是由Scrapy框架自動(dòng)創(chuàng)建的,不需要手動(dòng)創(chuàng)建。
使用PyCharm編寫Scrapy爬蟲程序,爬取古詩詞網(wǎng)站使用PyCharm編寫Scrapy爬蟲程序,爬取古詩詞網(wǎng)站
在Scrapy爬蟲程序目錄結(jié)構(gòu)中,各個(gè)目錄和文件的作用如下:
(1)Spiders目錄:該目錄下包含爬蟲文件,需編碼實(shí)現(xiàn)爬蟲過程;
(2)init.py:為Python模塊初始化目錄,可以什么都不寫,但是必須要有;
(3)items.py:模型文件,存放了需要爬取的字段;
(4)middlewares.py:中間件(爬蟲中間件、下載中間件),本案例中不用此文件;
(5)pipelines.py:管道文件,用于配置數(shù)據(jù)持久化,例如寫入數(shù)據(jù)庫;
(6)settings.py:爬蟲配置文件;
(7)scrapy.cfg:項(xiàng)目基礎(chǔ)設(shè)置文件,設(shè)置爬蟲啟用功能等。在本案例中不用此文件

編寫代碼文件items.py

在items.py中定義字段用于保存數(shù)據(jù),items.py的具體代碼內(nèi)容如下:

import scrapy

class PoemscrapyItem(scrapy.Item):
    # 名句
    sentence = scrapy.Field()
    # 出處
    source = scrapy.Field()
    # 全文鏈接
    url = scrapy.Field()
    # 名句詳細(xì)信息
    content = scrapy.Field()

編寫爬蟲軟件

在Terminal窗口輸入命令“cd poemScrapy”,進(jìn)入對(duì)應(yīng)的爬蟲工程中,再輸入命令“scrapy genspider poemSpider gushiwen.cn”,這時(shí),在spiders目錄下會(huì)出現(xiàn)一個(gè)新的Python文件poemSpider.py,該文件就是我們要編寫爬蟲程序的位置。
使用PyCharm編寫Scrapy爬蟲程序,爬取古詩詞網(wǎng)站
使用PyCharm編寫Scrapy爬蟲程序,爬取古詩詞網(wǎng)站使用PyCharm編寫Scrapy爬蟲程序,爬取古詩詞網(wǎng)站
下面是poemSpider.py的具體代碼:

import scrapy
from scrapy import Request
from ..items import PoemscrapyItem


class PoemspiderSpider(scrapy.Spider):
    name = 'poemSpider'  # 用于區(qū)別不同的爬蟲
    allowed_domains = ['gushiwen.cn']  # 允許訪問的域
    start_urls = ['http://so.gushiwen.cn/mingjus/']  # 爬取的地址

    def parse(self, response):
        # 先獲每句名句的div
        for box in response.xpath('//*[@id="html"]/body/div[2]/div[1]/div[2]/div'):
            # 獲取每句名句的鏈接
            url = 'https://so.gushiwen.cn' + box.xpath('.//@href').get()
            # 獲取每句名句內(nèi)容
            sentence = box.xpath('.//a[1]/text()').get()
            # 獲取每句名句出處
            source = box.xpath('.//a[2]/text()').get()
            # 實(shí)例化容器
            item = PoemscrapyItem()
            # 將收集到的信息封裝起來
            item['url'] = url
            item['sentence'] = sentence
            item['source'] = source
            # 處理子頁
            yield scrapy.Request(url=url, meta={'item': item}, callback=self.parse_detail)
        # 翻頁
        next = response.xpath('//a[@class="amore"]/@href').get()
        if next is not None:
            next_url = 'https://so.gushiwen.cn' + next
            # 處理下一頁內(nèi)容
            yield Request(next_url)

    def parse_detail(self, response):
        # 獲取名句的詳細(xì)信息
        item = response.meta['item']
        content_list = response.xpath('//div[@class="contson"]//text()').getall()
        content = "".join(content_list).strip().replace('\n', '').replace('\u3000', '')
        item['content'] = content
        yield item

編寫代碼文件pipelines.py

當(dāng)我們成功獲取需要的信息后,要對(duì)信息進(jìn)行存儲(chǔ)。在Scrapy爬蟲框架中,當(dāng)item被爬蟲收集完后,將會(huì)被傳遞到pipelines?,F(xiàn)在要將爬取到的數(shù)據(jù)保存到文本文件中,可以使用的pipelines.py代碼:

import json

class PoemscrapyPipeline:
    def __init__(self):
        # 打開文件
        self.file = open('data.txt', 'w', encoding='utf-8')

    def process_item(self, item, spider):
        # 讀取item中的數(shù)據(jù)
        line = json.dumps(dict(item), ensure_ascii=False) + '\n'
        # 寫入文件
        self.file.write(line)
        return item

編寫代碼文件settings.py

settings.py的具體代碼如下:

BOT_NAME = 'poemScrapy'

SPIDER_MODULES = ['poemScrapy.spiders']
NEWSPIDER_MODULE = 'poemScrapy.spiders'

USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4421.5 Safari/537.36'

# Obey robots.txt rules
ROBOTSTXT_OBEY = False

# 設(shè)置日志打印的等級(jí)
LOG_LEVEL = 'WARNING'

ITEM_PIPELINES = {
    'poemScrapy.pipelines.PoemscrapyPipeline': 1,
}

運(yùn)行程序

有兩種執(zhí)行Scrapy爬蟲的方法,第一種是在Terminal窗口中輸入命令“scrapy crawl poemSpider”,然后回車運(yùn)行,等待幾秒鐘后即可完成數(shù)據(jù)的爬取。第二種是在poemScrapy目錄下新建Python文件run.py(run.py應(yīng)與scrapy.cfg文件在同一層目錄下),并輸入下面代碼:
此處使用run.py的方式

from scrapy import cmdline
cmdline.execute("scrapy crawl poemSpider".split())

之后執(zhí)行代碼就可以看到data.txt爬取文本數(shù)據(jù)
同級(jí)目錄下生成的data.txt文件
使用PyCharm編寫Scrapy爬蟲程序,爬取古詩詞網(wǎng)站
爬取數(shù)據(jù)展示
使用PyCharm編寫Scrapy爬蟲程序,爬取古詩詞網(wǎng)站文章來源地址http://www.zghlxwxcb.cn/news/detail-502582.html

到了這里,關(guān)于使用PyCharm編寫Scrapy爬蟲程序,爬取古詩詞網(wǎng)站的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • scrapy爬蟲爬取多網(wǎng)頁內(nèi)容

    摘要 :此案例是爬取目標(biāo)網(wǎng)站( https://tipdm.com/ )的 新聞中心 板塊的 公司新聞 中所有新聞的標(biāo)題、發(fā)布時(shí)間、訪問量和新聞的文本內(nèi)容。 我使用的是 Anaconda prompt 我們使用如下命令創(chuàng)建scrapy項(xiàng)目: scrapy startproject spider_name 爬蟲路徑 spider_name 是項(xiàng)目的名字 爬蟲路徑 就是項(xiàng)目

    2023年04月21日
    瀏覽(29)
  • 【爬蟲】4.3 Scrapy 爬取與存儲(chǔ)數(shù)據(jù)

    目錄 1. 建立 Web 網(wǎng)站 2. 編寫數(shù)據(jù)項(xiàng)目類 3. 編寫爬蟲程序 MySpider 4. 編寫數(shù)據(jù)管道處理類 5. 設(shè)置 Scrapy 的配置文件 ????????從一個(gè)網(wǎng)站爬取到數(shù)據(jù)后,往往要存儲(chǔ)數(shù)據(jù)到數(shù)據(jù)庫中,scrapy 框架有十分方便的存儲(chǔ)方法,為了說明這個(gè)存儲(chǔ)過程,首先建立一個(gè)簡(jiǎn)單的網(wǎng)站,然后寫

    2024年02月09日
    瀏覽(23)
  • 網(wǎng)絡(luò)爬蟲丨基于scrapy+mysql爬取博客信息

    網(wǎng)絡(luò)爬蟲丨基于scrapy+mysql爬取博客信息

    本期內(nèi)容 :基于scrapy+mysql爬取博客信息并保存到數(shù)據(jù)庫中 實(shí)驗(yàn)需求 anaconda丨pycharm python3.11.4 scrapy mysql 項(xiàng)目下載地址:https://download.csdn.net/download/m0_68111267/88740730 本次實(shí)驗(yàn)實(shí)現(xiàn)了:使用Scrapy框架爬取博客專欄的目錄信息并保存到MySQL數(shù)據(jù)庫中,實(shí)驗(yàn)主要涉及到Python的爬蟲技術(shù)以

    2024年03月18日
    瀏覽(19)
  • python爬蟲實(shí)戰(zhàn) scrapy+selenium爬取動(dòng)態(tài)網(wǎng)頁

    python爬蟲實(shí)戰(zhàn) scrapy+selenium爬取動(dòng)態(tài)網(wǎng)頁

    最近學(xué)習(xí)了scrapy爬蟲框架,想要找個(gè)目標(biāo)練練手。由于現(xiàn)在很多網(wǎng)頁都是動(dòng)態(tài)的,因此還需要配合selenium爬取。本文旨在記錄這次學(xué)習(xí)經(jīng)歷,如有疑問或不當(dāng)之處,可以在評(píng)論區(qū)指出,一起學(xué)習(xí)。 對(duì)scrapy不了解的同學(xué)可以閱讀這篇文章 爬蟲框架 Scrapy 詳解,對(duì)scrapy框架介紹的

    2024年02月07日
    瀏覽(51)
  • 爬蟲學(xué)習(xí)筆記-scrapy爬取電影天堂(雙層網(wǎng)址嵌套)

    爬蟲學(xué)習(xí)筆記-scrapy爬取電影天堂(雙層網(wǎng)址嵌套)

    ? 1.終端運(yùn)行scrapy startproject movie,創(chuàng)建項(xiàng)目 2.接口查找 ?3.終端cd到spiders,cd scrapy_carhome/scrapy_movie/spiders,運(yùn)行?scrapy genspider mv https://dy2018.com/ 4.打開mv,編寫代碼,爬取電影名和網(wǎng)址 5.用爬取的網(wǎng)址請(qǐng)求,使用meta屬性傳遞name?,callback調(diào)用自定義的parse_second 6.導(dǎo)入ScrapyMovieItem,將movie對(duì)象

    2024年02月19日
    瀏覽(27)
  • Python爬蟲之Scrapy框架系列(23)——分布式爬蟲scrapy_redis淺實(shí)戰(zhàn)【XXTop250部分爬取】

    先用單獨(dú)一個(gè)項(xiàng)目來使用scrapy_redis,講解一些重要點(diǎn)!

    2024年02月16日
    瀏覽(24)
  • 網(wǎng)絡(luò)爬蟲丨基于scrapy+mysql爬取博客信息并保存到數(shù)據(jù)庫中

    網(wǎng)絡(luò)爬蟲丨基于scrapy+mysql爬取博客信息并保存到數(shù)據(jù)庫中

    本期內(nèi)容 :基于scrapy+mysql爬取博客信息并保存到數(shù)據(jù)庫中 實(shí)驗(yàn)需求 anaconda丨pycharm python3.11.4 scrapy mysql 項(xiàng)目下載地址:https://download.csdn.net/download/m0_68111267/88740730 本次實(shí)驗(yàn)實(shí)現(xiàn)了:使用Scrapy框架爬取博客專欄的目錄信息并保存到MySQL數(shù)據(jù)庫中,實(shí)驗(yàn)主要涉及到Python的爬蟲技術(shù)以

    2024年01月17日
    瀏覽(20)
  • 爬蟲學(xué)習(xí)筆記-scrapy鏈接提取器爬取讀書網(wǎng)鏈接寫入MySQL數(shù)據(jù)庫

    爬蟲學(xué)習(xí)筆記-scrapy鏈接提取器爬取讀書網(wǎng)鏈接寫入MySQL數(shù)據(jù)庫

    1.終端運(yùn)行scrapy startproject scrapy_read,創(chuàng)建項(xiàng)目 2.登錄讀書網(wǎng),選擇國學(xué)(隨便點(diǎn)一個(gè)) 3.復(fù)制鏈接(后面修改為包括其他頁) ?4.創(chuàng)建爬蟲文件,并打開 ?5.滑倒下方翻頁處,右鍵2,點(diǎn)擊檢查,查看到a標(biāo)簽網(wǎng)址,復(fù)制 6.修改爬蟲文件規(guī)則allow(正則表達(dá)式),\\\'d\\\'表示數(shù)字,\\\'+\\\'表示多個(gè),\\\'.\\\'使\\\'.\\\'生效

    2024年02月19日
    瀏覽(27)
  • Python爬蟲之Scrapy框架系列(21)——重寫媒體管道類實(shí)現(xiàn)保存圖片名字自定義及多頁爬取

    spider文件中要拿到圖片列表并yield item; item里需要定義特殊的字段名:image_urls=scrapy.Field(); settings里設(shè)置IMAGES_STORE存儲(chǔ)路徑,如果路徑不存在,系統(tǒng)會(huì)幫助我們創(chuàng)建; 使用默認(rèn)管道則在s

    2024年02月10日
    瀏覽(94)
  • vscode 編寫爬蟲爬取王者榮耀壁紙

    網(wǎng)上關(guān)于爬蟲大部分教程和編輯器用的都不是vscode ,此教程用到了vscode、Python、bs4、requests。 vscode配置Python安裝環(huán)境可以看看這個(gè)大佬的教程?03-vscode安裝和配置_嗶哩嗶哩_bilibili vscode配置爬蟲環(huán)境可以參考這個(gè)大佬的教程【用Vscode實(shí)現(xiàn)簡(jiǎn)單的python爬蟲】從安裝到配置環(huán)境變

    2024年02月04日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包