104學習精靈

Middleware

Middleware
關注
邀請朋友
邀請朋友

Line

Facebook

複製連結

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

Middleware 學習推薦

全部
影片
文章
Mike Ku

Learn Code With Mike品牌創辦人

2021/12/21

在Scrapy框架整合Selenium套件爬取動態網頁的實作
本文以Accupass網站的精選活動為例,來分享Scrapy框架整合Selenium套件,開發Python網頁爬蟲的流程。
Q: 如何建立Scrapy網頁爬蟲?
首先,利用以下指令安裝Scrapy框架:
$ pip install scrapy
接著,新增一個資料夾,並且使用命令提示字元切換到該資料夾的目錄下,建立Scrapy專案,如下:
$ scrapy startproject accupass_scraper .
有了專案後,就能夠利用以下指令建立Scrapy網頁爬蟲:
$ scrapy genspider accupass accupass.com
Q:如何安裝scrapy-selenium套件?
而Scrapy框架想要使用Selenium套件來發送請求與接收回應,就需要一個Middleware來使用Selenium套件。
其中的Middleware,也就是在Scrapy發送請求前,以及將回應結果傳給Scrapy網頁爬蟲前,能夠在Middleware中來進行前處理。
所以,Scrapy框架想要使用Selenium套件來發送請求與接收回應結果,就需要定義Middleware,當然,已經有大大寫好了scrapy-selenium Middleware可以使用,安裝方式如下指令:
$ pip install scapy-selenium
接下來,前往下載Selenium的瀏覽器驅動,並且放置於Scrapy專案資料夾中。開啟settings.py檔案,加入scrapy-selenium Middleware的相關設定,如下範例:
DOWNLOADER_MIDDLEWARES = {
'scrapy_selenium.SeleniumMiddleware': 800
}
SELENIUM_DRIVER_NAME = 'chrome'
SELENIUM_DRIVER_EXECUTABLE_PATH = 'chromedriver.exe'
SELENIUM_DRIVER_ARGUMENTS = ['-headless']
Q:如何Scrapy整合Selenium爬取動態網頁?
開啟Scrapy專案的accupass.py檔案,引用scrapy-selenium的SeleniumRequest模組,如下範例:
import scrapy
from scrapy_selenium import SeleniumRequest
而想要讓Scrapy框架使用Selenium套件發送請求,就可以新增start_requests()方法,如下範例:
class AccupassSpider(scrapy.Spider):
name = 'accupass'
allowed_domains = ['accupass.com']
start_urls = ['http://accupass.com/']
def start_requests(self):
yield SeleniumRequest(url='https://www.accupass.com/?area=north', callback=self.parse)
以上的callback參數就是收到網頁的回應結果之後,所要執行的方法,也就是爬取網頁上的資料,如下範例:
class AccupassSpider(scrapy.Spider):
name = 'accupass'
allowed_domains = ['accupass.com']
start_urls = ['http://accupass.com/']
def start_requests(self):
yield SeleniumRequest(url='https://www.accupass.com/?area=north', callback=self.parse)
def parse(self, response):
titles = response.css("p.style-f13be39c-event-name::text").getall()
for title in titles:
print(title)
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2021/11/scrapy-integrate-with-selenium.html
)網站觀看更多精彩內容。
3 0 230 2

熱門精選

104學習精靈

產品

04/25 15:52

【限量:免費報名】利用AI自動化行銷|直播講座
講座詳細資訊
時間:04/30(二) 20:00 - 21:00
講者:圭話行銷創辦人 何佳勳 / 業界資深的數位廣告行銷專家
主題:行銷新篇章:AI如何革新檔期活動策略
在這個數位化的時代,AI技術正以驚人的速度改變著我們的行銷方式。檔期促銷活動面對的受眾眾多,難以精準定位目標受眾,進而影響活動效果、每次規劃檔期活動都需要創造吸引人的內容和促銷方式,但長期以來,創意卻逐漸耗盡、想要掌握AI如何革新檔期活動策略的最新動向嗎?
你也在苦思如何創造不同以往、有別競品的檔期活動嗎?104學習精靈與緯育TibaMe,攜手邀請到數位廣告界專家 圭話行銷創辦人何佳勳老師。學員們都稱呼他為小圭老師,不僅熱愛與學員社群互動、對學員有問必答,更善於為客戶的製造許多驚喜及營收,一起期待老師分享如何透過 AI 工具提升30%的檔期活動成效吧~
1 0 5067 0
7 0

推薦給你

104學習精靈

產品

32分鐘前

去趣在紅什麼?好用旅遊規劃app,使用方法、優缺點一次看
「去趣」是一款功能全面且方便的旅遊行程規劃工具,特別適合喜歡精密規劃和分享旅行經歷的旅行者​。快來看看去趣的介紹吧!
【使用方法】
1. 下載與註冊:首先,你需要從App Store或Google Play下載「去趣」app,然後創建一個帳號。
2. 建立行程:打開app後,點擊底部導航欄的「行程」按鈕來創建新的行程。你可以為行程命名並添加旅遊照片來客製化你的行程。
3. 添加景點:透過搜索或選擇app推薦的熱門景點,將其加入行程。如果你已經在Google Maps上有保存的景點,也可以直接導入這些景點。
4. 規劃路線:當你添加完所有景點後,「去趣」會自動幫你規劃出一條高效的遊覽路線。你還可以手動調整景點的順序。
5. 調整交通方式:你可以選擇步行、大眾交通工具或自駕等交通方式,app會顯示各個景點間的估計移動時間。
6. 共享與合作:「去趣」允許你邀請朋友共同編輯行程,讓旅行規劃更加合作和有趣。
7. 行程小書製作:行程結束後,你可以將行程中的照片、筆記等內容製作成一本旅遊小書,保存美好回憶。
【去趣優點】
1. 自動路線規劃:節省了手動規劃路線的時間,特別是在不熟悉的地區。
2. 交通工具整合:提供多種交通方式的建議和時間計算,使行程更加順暢。
3. 社群互動功能:能與朋友共享和編輯行程,增加旅遊的互動樂趣。
4. 個性化記錄:可以將旅程中的高光時刻轉化為美好的旅遊小書。
【去趣缺點】
1. 依賴網路:大部分功能需要連接互聯網,可能在網路不佳的地區使用受限。
2. 數據隱私:由於app涉及大量個人旅行資料和社交媒體連結,用戶可能對數據隱私感到擔憂。
3. 複雜性:對於不太熟悉數字工具的用戶,初次使用可能會覺得界面和功能有些複雜。
祝福大家旅途愉快,規劃行程時,方便順利!
0 0 22 0
你可能感興趣的教室