104學習精靈

Terminal server

Terminal server
關注
邀請朋友
邀請朋友

Line

Facebook

複製連結

取消
關於教室
關注人數 0 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
教室標籤
關於教室
關注人數 0 人
104人力銀行從職缺中挑選出常見技能所成立的官方教室,提供大家進行共學互動。
學習主持人
持續分享知識,
有機會成為官方教室主持人
教室標籤
Hi~ 歡迎分享學習資源,有學習問題可匿名向Giver發問!
我要分享
我要提問

Terminal server 學習推薦

全部
影片
文章
Mike Ku

Learn Code With Mike品牌創辦人

2021/12/29

學會使用3個Scrapy網頁爬蟲偵錯技巧提升開發效率
Q:Scrapy Shell(互動介面)是什麼?
Scrapy Shell是一個互動式的終端(Terminal)介面,讓開發人員可以不需要等到整個Scrapy專案完成就能夠進行測試,主要是用來測試Scrapy框架使用css()或xpath()方法(Method)爬取資料的結果。
舉例來說,用Visual Studio Code開啟Scrapy專案,在終端介面(Terminal)的地方,利用以下的指令開啟Scrapy Shell:
如果想要確認回應的結果,可以使用以下的Scrapy Shell指令:
>>>view(response)
True
除此之外,假設要爬取其中的新聞標題,就可以在Scrapy Shell的互動式介面中,透過指令的方式,使用css()或xpath()方法(Method)來測試是否能夠爬取成功,如下範例:
>>> response.css("h3.post_title a.js-auto_break_title::text").get()
'Appier 將於東京交易所掛牌,市值估突破 10 億美元'
Q:Scrapy Logging(日誌)如何使用?
Scrapy網頁爬蟲另一個最常用來偵錯的方法就是Logging(日誌),依據重要的程度分為五種日誌類型,由高到低為:critical、error、warning、info、debug,由於Scrapy框架的網頁爬蟲類別(spiders)本身就已經有logger物件,所以無需引用就可以在網頁爬蟲中使用,如下範例:
class HotNewsSpider(scrapy.Spider):
name = 'hot_news'
allowed_domains = ['www.inside.com.tw']
def parse(self, response):
# 熱門文章標題
hot_news_title = response.xpath(
"//h1[@class='title']/text()").get()
if hot_news_title:
return hot_news_title
else:
self.logger.error("沒有爬取到熱門文章標題")
接下來,開啟Scrapy專案的settings.py檔案,加入以下設定,如下範例:
LOG_FILE = "inside_log.txt"
LOG_LEVEL = "ERROR" #特別注意這邊一定要大寫
其中「LOG_LEVEL(日誌層級)」可以自訂在哪一個日誌類型以上需要被記錄到日誌檔中,預設為DEBUG。
而Scrapy網頁爬蟲(spiders)模組以外,如果想要使用Logging(日誌),就需要引用logging模組(Module),以ITEM PIPELINE資料模型管道(pipelines.py)為例,如下範例:
from itemadapter import ItemAdapter
from scrapy.exporters import CsvItemExporter
import logging
class CsvPipeline:
def __init__(self):
self.file = open('posts.csv', 'wb')
self.exporter = CsvItemExporter(self.file, encoding='big5')
self.exporter.start_exporting()
def process_item(self, item, spider):
if item:
self.exporter.export_item(item)
return item
else:
logging.error("無資料匯出!")
...
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike(https://www.learncodewithmike.com/2021/03/scrapy-spiders-debug.html
)網站觀看更多精彩內容。
2 0 593 0
Mike Ku

Learn Code With Mike品牌創辦人

2021/12/29

實用的Scrapy框架安裝指南,開始你的第一個專案
繼[Scrapy教學1]快速入門Scrapy框架的5個執行模組及架構( https://www.learncodewithmike.com/2020/12/python-scrapy-architecture.html )文章,瞭解Scrapy框架的5個主要模組相互之間的關係與執行流程後,本文將帶大家在Windows環境中,安裝Scrapy框架,並且提示可能會遇到的錯誤該如何解決,最後,建立屬於您的第一個Scrapy專案,來一窺其中的檔案結構。
Q:如何安裝Scrapy框架?
首先,Scrapy框架的安裝方式,就像安裝Python的套件(Package)一樣,透過以下的指令即可進行安裝:
$ pip install scrapy
而要確認Scrapy框架是否有安裝成功,可以先在命令提示字元視窗中輸入scrapy指令,其中有一個「bench」指令,用來快速執行Scrapy框架的基準測試,如下:
$ scrapy bench
執行後如果沒有顯示錯誤訊息,代表安裝成功。
Q:如何建立Scrapy專案?
Scrapy框架安裝完成後,接下來,就可以建立Scrapy專案來開發網頁爬蟲。本文以新聞網頁爬蟲專案為例,在桌面先建立一個「news_scraper」資料夾,接著,開啟Visual Studio Code,打開「news_scraper」資料夾,在Terminal視窗中即可利用以下的指令來建立Scrapy專案:
$ scrapy startproject 你的專案名稱 .
以上指令的「.」意思是在目前的目錄下,建立Scrapy專案。而執行結果則是告訴我們專案建立成功,並且引導如何開發第一個Python網頁爬蟲。
Q:Scrapy專案結構是什麼?
這時候,可以在「news_scraper」資料夾中看到Scrapy專案的檔案結構:
1. spiders資料夾:用來存放Python網頁爬蟲程式碼的地方。
2. items.py:定義想要爬取或儲存的資料欄位。
3. middlewares.py:定義「spiders與引擎(ENGINE)中間件」及「引擎(ENGINE)與下載器(DOWNLOADER)中間件」。
4. pipelines.py:定義items資料的後續處理,像是清理、儲存至資料庫或檔案等。
5. settings.py:Scrapy專案設定檔。
6. scrapy.cfg:Scrapy專案部署設定檔。
經過本文的說明,相信大家都能夠將Scrapy框架安裝起來,另外,透過建立Scrapy專案的方式,來瞭解其中各個檔案所負責的工作,將有助於未來在開發的過程中,能夠得心應手,希望對於想學習Scrapy框架的讀者有所幫助。
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2020/12/scrapy-installation.html )網站觀看更多精彩內容。
3 0 437 2

推薦給你

知識貓星球

喵星人

11/23 19:44

為什麼我的團隊出現「數據孤島」的情形?如何解決資訊不流通
數據孤島(Data Silos)是指在組織內部,不同部門或系統之間的數據無法有效共享和整合的現象。這種情況通常導訊息的孤立,影響企業的運營效率和決策能力。
【數據孤島的特點】
- 隔離性:數據孤島中的數據只能由特定的部門或團隊訪問,其他部門無法獲取或使用這些數據,造成訊息流通不暢。
- 重複性:不同部門可能會儲存相同的數據,導致資源浪費和數據不一致的問題。
- 決策困難:由於數據分散,企業難以進行全面的數據分析,影響決策的準確性和及時性。
【數據孤島的成因】
1. 技術障礙:不同部門使用的系統和平台可能不兼容,缺乏統一的數據標準和接口,導致數據無法共享。
2. 組織結構:各部門之間缺乏協作機制,可能出於自身利益考量而不願意共享數據,形成部門壁壘。
3. 數據治理不足:缺乏系統的數據治理策略,導致數據管理混亂,影響數據的質量和可靠性。
【數據孤島的影響】
✔ 降低效率:數據孤島會導致業務流程繁瑣,無法實現高效的跨部門協同,增加工作負擔。
✔ 影響決策:由於無法獲取全面的數據支持,管理層在做出決策時可能面臨困難,增加決策風險。
✔ 資源浪費:重複的數據存儲和處理不僅浪費了時間和人力資源,還可能導致數據的過時和不準確。
解決數據孤島問題的技術手段主要集中在數據整合、數據治理和系統協作等方面。以下是一些有效的技術方法:
【解決數據孤島的技術手段】
1. 數據集成平台
數據集成平台可以將來自不同系統的數據集中存儲、處理和分發,實現數據的一致性和可視化。這些平台通常使用ETL(提取、轉換、加載)工具來整合數據,從而消除數據孤島。
2. 數據倉庫和數據湖
數據倉庫和數據湖可以集中管理來自不同來源的數據,提供統一的數據視圖。數據倉庫適合結構化數據,而數據湖則能處理結構化和非結構化數據,支持更靈活的數據分析。
3. 統一的數據治理框架
建立明確的數據治理策略,包括數據分類、質量標準和安全規範,能夠提高數據的質量和一致性,並促進數據的共享和利用。
4. 雲ERP系統
雲ERP系統通過統一的平台整合企業的各個業務模塊,實現數據的集中管理和共享。這種系統能夠實時更新數據,提升決策效率和準確性,並減少IT成本。
5. API和微服務架構
功能:使用API(應用程式介面)和微服務架構可以促進不同系統之間的數據交互,實現靈活的數據共享和整合。這種方法能夠打破系統之間的壁壘,促進數據的流通。
6. 數據虛擬化技術
功能:數據虛擬化技術通過創建虛擬數據視圖,使得用戶能夠從多個數據源中一次性檢索數據,而不需要知道數據實際存儲的位置,從而提升數據訪問效率。
0 0 229 0
你可能感興趣的教室