104學習精靈

網頁爬蟲

網頁爬蟲
關注
邀請朋友
邀請朋友

Line

Facebook

複製連結

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

網頁爬蟲 學習推薦

全部
影片
文章
Mike Ku

Learn Code With Mike品牌創辦人

2022/01/19

一定要懂的Scrapy框架結合Gmail寄送爬取資料附件秘訣
本文將爬取的結果存入CSV檔案後,透過Gmail附件郵寄給使用者。在開始之前,大家可以先參考[Python實戰應用]Python寄送Gmail電子郵件實作教學文章( https://www.learncodewithmike.com/2020/02/python-email.html )的第二節步驟,取得Gmail的應用程式密碼,以便能夠利用它的SMTP(簡易郵件傳輸協定)來發送郵件。
Q: Scrapy MailSender結合Gmail發送郵件
在Scrapy網頁爬蟲框架中,想要實作發送電子郵件的功能,可以使用內建的MailSender模組(Module),透過基本的設定即可達成。開啟Scrapy專案的settings.py設定檔,加入以下的Gmail SMTP設定:
MAIL_HOST = "smtp.gmail.com"
MAIL_PORT = 587
MAIL_FROM = "申請Gmail應用程式密碼所使用的電子郵件帳號"
MAIL_PASS = "Gmail應用程式密碼"
MAIL_TLS = True
並且,將[Scrapy教學7]教你Scrapy框架匯出CSV檔案方法提升資料處理效率文章( https://www.learncodewithmike.com/2021/01/scrapy-export-csv-files.html )中所建立的CsvPipeline資料模型管道設定開啟,如下範例:
ITEM_PIPELINES = {
'news_scraper.pipelines.CsvPipeline': 500,
}
設定完成後,開啟ITEM PIPELINE資料模型管道(pipelines.py)檔案,引用Scrapy框架的設定檔及MailSender模組(Module),如下範例:
from itemadapter import ItemAdapter
from news_scraper import settings
from scrapy.mail import MailSender
接著,在CsvPipeline類別(Class)的close_spider()方法(Method)中,來建立Scrapy MailSender物件,以及指定Gmail的附件,包含「附件顯示的名稱(attach_name)」、「網際網路媒體類型(mime_type)」及「檔案物件(file_object)」,如下範例:
class CsvPipeline:
...
def close_spider(self, spider):
self.exporter.finish_exporting()
self.file.close()
mail = MailSender(smtphost=settings.MAIL_HOST,
smtpport=settings.MAIL_PORT,
smtpuser=settings.MAIL_FROM,
smtppass=settings.MAIL_PASS,
smtptls=settings.MAIL_TLS)
attach_name = "posts.csv"
mime_type = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
file_object = open("posts.csv", "rb")
return mail.send(to=["example@gmail.com"],
subject="news",
body="",
attachs=[(attach_name, mime_type, file_object)])
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike(https://www.learncodewithmike.com/2021/02/scrapy-sending-gmail.html
)網站觀看更多精彩內容。
2 0 265 0

熱門精選

104學習精靈

產品

6小時前

新鮮人求職趨勢關鍵 x LINE 校園實習及證照
▶ 新手出社會,就業市場關鍵趨勢,你一定要知道!
我們將會講解2024新鮮人,就業市場現況
分享LINE實習計畫,體驗外商文化的你,千萬別錯過
#104就業數據 #LINE實習機會 #新鮮人起薪 #熱門證照 #趨勢產業
▶ 講座將帶你了解
⭐104人力銀行
✔ 企業愛的搶手人才Top3關鍵能力
✔ 新鮮人起薪中位數,別談低了!
✔ 職場學習No.1熱門關鍵字,你跟上了嗎?
✔ 有證照面試邀約,竟然高出..%
✔ 求職市場的關鍵數據,哪個產業最缺人?
⭐LINE
✔ 你不知道的LINE數據
✔ LINE校園招募、實習計畫介紹
✔ 成為 “LINER” 的福利
✔ 行銷人都要有一張!LINE 廣告證照 GREEN MEDAL 認證
0 0 633 0
104學習精靈精選課程
看更多課程
想提升職場競爭力?專業技能課程看起來👇
Mike Ku

Learn Code With Mike品牌創辦人

2021/12/30

教你Scrapy框架匯出CSV檔案方法提升資料處理效率
Q:Scrapy CsvItemExporter(CSV資料模型匯出器)如何使用?
開啟「資料模型管道檔案(pipeline.py)」,由於本文想要將爬取到的資料匯出到CSV檔案中,所以就需要引用CsvItemExporter(CSV資料模型匯出器),如下範例:
from itemadapter import ItemAdapter
from scrapy.exporters import CsvItemExporter
接下來,新增一個CsvPipeline類別(Class),用來定義Scrapy網頁爬蟲取得的資料匯出到CSV檔案的流程,這個類別名稱可以自行命名,如下範例:
from itemadapter import ItemAdapter
from scrapy.exporters import CsvItemExporter
class CsvPipeline:
類別(Class)命名完成後,新增一個建構式(Constructor),用來定義初始化的動作,如下範例:
class CsvPipeline:
def __init__(self):
self.file = open('posts.csv', 'wb')
self.exporter = CsvItemExporter(self.file, encoding='big5')
self.exporter.start_exporting()
以上的初始化動作包含了:
1.建立或打開CSV檔案,設定寫入二進位碼模式(wb, write binary)。
2.建立Scrapy框架的CsvItemExporter(CSV資料模型匯出器)物件,傳入檔案物件及編碼方式,預設為utf-8,如果讀者在匯出CSV檔案後,想要使用Microsoft Excel軟體開啟的話,就需要設定為big5,否則會出現亂碼。
3.呼叫start_exporting()方法(Method)開始進行檔案匯出的動作。
接下來,資料處理的部分,就需要實作Scrapy框架內建的process_item()方法(Method),在其中把資料模型(items)所裝載的資料,透過export_item()方法(Method)傳入CsvItemExporter(CSV資料模型匯出器),如下範例:
def process_item(self, item, spider):
self.exporter.export_item(item)
return item
將Scrapy網頁爬蟲取得的資料匯出到自訂的CSV檔案後,結束時所要進行的動作,就要實作內建的close_spider()方法(Method),如下範例:
def close_spider(self, spider):
self.exporter.finish_exporting()
self.file.close()
以上範例也就是在Scrapy網頁爬蟲結束時,呼叫finish_exporting()方法(Method)完成檔案匯出,並且將檔案物件關閉,釋放資源。
匯出CSV檔案的資料模型管道(pipeline)完成後,別忘了在settings.py檔案,將此資料模型管道(pipeline)加入到ITEM_PIPELINES設定中,如下範例:
ITEM_PIPELINES = {
'news_scraper.pipelines.CsvPipeline': 500,
}
最後,利用以下指令來執行Scrapy網頁爬蟲:
$ scrapy crawl inside
執行後會在Scrapy網頁爬蟲專案中,看到posts.csv檔案,利用Microsoft Excel軟體開啟即可。
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike(https://www.learncodewithmike.com/2021/01/scrapy-export-csv-files.html
)網站觀看更多精彩內容。
2 0 947 3

推薦給你

緯育TibaMe

03/11 10:13

【免費報名】3/18與你分享 跨域轉職正夯,揭密成功轉職心法
想跟著金牌就業培訓講師邁向你的理想職涯嗎?🚀
搶先報名留下轉職煩惱線上就有機會優先解答👉 https://bit.ly/48Tsxh8
年後往往掀起一波轉職潮,企業更釋出大量缺…
或許你不知道根據人力銀行統計「跨領域」轉職趨勢正逐年增高!
追逐理想職涯路上你並不孤單🤗
你缺的只是勇敢跨出的那一步~
▋ 跟著直播離成功更進一步
你將獲得…
🚩 年後全新局面的因應指南
🚩 跨領域轉職是「歸零」還是「未嘗試的成功機會點」?
🚩 7大領域的IT人才進入攻略
🚩 5個月內從0 → 實戰力的核心關鍵
🚩揭密跨域轉職者求職的突破點
本次邀請同時俱 #業界實戰、 #企業主管 、 #轉職就業培訓教學 三大經歷的雙講師線上與你分享一陸以來他們如何幫助眾多學員一個個推向理想職涯的!
▋ 本場講者
李偉銘 老師
軟體產業5年開發、管理、規劃資歷。
曾任資深軟體工程師、技術副理,經手許多金控及公家機關等開發專案。
現任 緯育TibaMe Java雲端服務開發技術養成班、前端工程師專業技術養成班等5大就業養成班授課講師
Reds老師
軟體產業5年開發、管理、規劃資歷。
曾任資深軟體工程師,軟體專案主管。擁有半導體、政府、中小型企業軟體專案開發與維護經驗,包含台灣惠普(HP)、民航局、神腦…等。
現任 微軟C#全端開發工程師養成班 講師
▋ 直播詳細資訊
主題:【揭密年後轉職薪高度TIPS】 5個月內從零基礎到成功跨域就業
時間:3/18(一) 20:00 - 21:00
直播連結:報名後活動當日mail提供
免費報名: https://bit.ly/48Tsxh8
0 0 9402 4
你可能感興趣的教室