104學習精靈

Selenium

Selenium
關注
邀請朋友
邀請朋友

Line

Facebook

複製連結

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

Selenium 學習推薦

全部
影片
文章
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 1800 0
學習精靈

10/24 00:00

72 0
Mike Ku

Learn Code With Mike品牌創辦人

2021/12/21

掌握3個降低Scrapy網頁爬蟲被封鎖的技巧
Q: Scrapy網頁爬蟲框架如何輪流替換User-Agent(使用者代理)?
在Scrapy網頁爬蟲爬取網頁時,網站都會使用User-Agent(使用者代理)來識別所使用的瀏覽器版本資訊,而當Scrapy網頁爬蟲每次爬取都使用相同的User-Agent(使用者代理),就很容易被懷疑是網頁爬蟲而被封鎖。
所以,如果Scrapy網頁爬蟲在發送請求的過程中,隨機使用不同的User-Agent(使用者代理),就可以大幅降低被偵測的風險。
而要達到這樣的功能,就能夠利用以下指令來安裝scrapy-user-agents套件,讓Scrapy網頁爬蟲能夠隨機取用不同的User-Agent(使用者代理):
$ pip install scrapy-user-agents
接著,開啟Scrapy網頁爬蟲專案的settings.py檔案,在DOWNLOAD_MIDDLEWARES的地方,加入以下的設定:
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,
'scrapy_user_agents.middlewares.RandomUserAgentMiddleware': 400,
}
Q: Scrapy網頁爬蟲框架如何輪流替換Proxy IP(代理服務器IP)?
同樣,如果Scrapy網頁爬蟲都使用相同的IP發送請求,很容易會被反爬蟲網站發現而封鎖。這時候,就會需要隨機使用不同的Proxy IP(代理服務器IP),降低被偵測的風險。
可以利用以下指令安裝scrapy-rotating-proxies套件,來達成上述的效果:
$ pip install scrapy-rotating-proxies
開啟Scrapy網頁爬蟲傳案的settings.py檔案,加入以下的設定:
ROTATING_PROXY_LIST_PATH = '/path/my_proxies.txt'
DOWNLOADER_MIDDLEWARES = {
'rotating_proxies.middlewares.RotatingProxyMiddleware': 610,
'rotating_proxies.middlewares.BanDetectionMiddleware': 620,
}
其中,在自訂的Proxy IP檔案(my_proxies.txt)中加入Proxy IP,如下範例:
ROTATING_PROXY_LIST = [
'proxy_ip_1:8000',
'proxy_ip_2:8031',
...
]
Q: Scrapy網頁爬蟲框架如何使用無頭瀏覽器(Headless Browser)?
無頭瀏覽器(Headless Browser)也就是沒有圖形化的使用者介面瀏覽器,能夠模擬使用者在網頁上的操作,降低反爬蟲網站的偵測。
其中,Selenium就是最常被用來啟用無頭瀏覽器(Headless Browser)的套件,而Scrapy結合Selenium套件的實作方式可以參考[Scrapy教學12]在Scrapy框架整合Selenium套件爬取動態網頁的實作指南文章( https://www.learncodewithmike.com/2021/11/scrapy-integrate-with-selenium.html )。
當然,除了本文所分享的3個Scrapy網頁爬蟲克服反爬蟲網站的方法外,還可以參考[Python爬蟲教學]7個降低Python網頁爬蟲被偵測封鎖的實用方法文章( https://www.learncodewithmike.com/2020/09/7-tips-to-avoid-getting-blocked-while-scraping.html ),不外乎就是避免像Python網頁爬蟲機器人一樣有規則模式的爬取資料,才有機會不被反爬蟲網站抓到唷。
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2021/12/3-tips-for-scrapy-without-getting-blocked.html
)網站觀看更多精彩內容。
2 0 336 2
學習精靈

07/14 00:00

135 4

推薦給你

知識貓星球

喵星人

1小時前

微軟 AI 財務工具:解放你的財務工作!效率 up! up!
微軟近日宣布推出 AI 財務工具 Copilot for Finance,旨在幫助企業財務團隊提高工作效率。Copilot for Finance 是 Copilot 產品系列的最新成員,專為商業功能而設計,可提供多項功能來簡化財務分析、對帳和收款等日常工作。
【Copilot for Finance 的應用】
▶ 財務分析:Copilot for Finance 可用於分析財務數據,識別趨勢和異常情況。
▶ 對帳:Copilot for Finance 可用於自動化數據結構比較,簡化對帳流程。

▶ 收款:Copilot for Finance 可用於提供客戶帳戶信息摘要,加快收款速度。
【Copilot for Finance 的關鍵功能】
✖ 自然語言報表差異分析 ✖
財務分析師可以使用自然語言指令,在 Excel 中快速進行報表差異分析。例如,他們可以輸入"比較去年同期的銷售額",Copilot for Finance 將自動生成比較兩組數據的報表。這項功能可以幫助財務分析師快速識別數據中的異常情況和趨勢。
✖ 自動化數據結構比較 ✖
Copilot for Finance 可以自動化Excel 中的數據結構比較,簡化對帳流程。該工具可以自動識別數據集中的差異,並生成易於理解的報告。這項功能可以幫助財務團隊節省大量時間和精力。
✖ 客戶帳戶信息摘要 ✖
Copilot for Finance 可以提供相關客戶帳戶信息摘要,例如餘額和發票,並將其顯示在 Outlook 中。這項功能可以幫助收款團隊更快地收款。
【Copilot for Finance 的優勢】
▶ 提高效率:Copilot for Finance 可以幫助財務團隊自動化繁瑣的任務,從而提高工作效率
▶ 降低風險:Copilot for Finance 可以幫助財務團隊更輕鬆地識別數據中的異常情況和趨勢,從而降低風險。
▶ 改善決策:Copilot for Finance 可以幫助財務團隊更快地獲得所需的信息,從而做出更明智的決策。
微軟表示,它將繼續開發 Copilot for Finance,並添加更多功能。未來的功能可能包
括:
⟡ 預測分析:Copilot for Finance 可使用預測分析來幫助財務團隊預測未來趨勢。
⟡ 風險管理:Copilot for Finance 可幫助財務團隊識別和管理風險。
⟡ 合規性:Copilot for Finance 可幫助財務團隊遵守財務合規性要求。
Copilot for Finance 是一項功能強大的AI 財務工具,可幫助企業財務團隊提高工作效率、降低風險和做出更好的決策!被報表壓到喘不過氣的財務們,立即試用看看 Copilot for Finance 吧!
➤ 立即關注【AI趨勢報-科技愛好者的產地】獲得更多科技新知!
0 0 23 0
你可能感興趣的教室