104學習精靈

前端框架開發

前端框架開發
關注
邀請朋友
邀請朋友

Line

Facebook

複製連結

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

前端框架開發 學習推薦

全部
影片
文章
Mike Ku

Learn Code With Mike品牌創辦人

2022/01/15

掌握Scrapy框架重要的CSS定位元素方法(下)
Q: Scrapy如何利用CSS方法取得子元素值?
在實務上利用Scrapy框架開發Python網頁爬蟲時,並不是每次想要爬取的網頁元素(Element)都會有CSS樣式類別可以定位,這時候,就會需要透過上層的父元素往下定位子元素。
假設INSIDE硬塞的網路趨勢觀察網站-AI新聞( https://www.inside.com.tw/tag/ai )的文章標題<a>標籤沒有「js-auto_break_title」CSS樣式類別,而想要爬取<a>標籤的文字內容,該如何達成呢?
這時候,就會需要在Scrapy框架中利用CSS樣式類別先定位到<h3>標籤,接著,再取得其下的子元素<a>標籤,如下範例:
import scrapy
class InsideSpider(scrapy.Spider):
name = 'inside'
allowed_domains = ['www.inside.com.tw']
def parse(self, response):
titles = response.css("h3.post_title a::text").getall()
for title in titles:
print(title)
在範例中,利用「post_title」CSS樣式類別定位到<h3>標籤後,接著一個空白,加上<a>標籤,意思就是取得<h3>標籤下的所有<a>標籤,由於要取得其中的文字,所以加上「::text」。
Q: Scrapy如何利用CSS方法取得元素屬性值?
此外,在開發Python網頁爬蟲時,也有機會爬取元素的屬性值(Attribute),舉例來說,最常見的就是<a>標籤的href屬性值(Attribute),也就是文章的連結網址,這時候只需要將「::text」關鍵字,修改為「::attr(屬性名稱)」即可,如下範例:
import scrapy
class InsideSpider(scrapy.Spider):
name = 'inside'
allowed_domains = ['www.inside.com.tw']
def parse(self, response):
urls = response.css("a.js-auto_break_title::attr(href)").getall()
for url in urls:
print(url)
本文與掌握Scrapy框架重要的CSS定位元素方法(上)搭配實際的網站,示範Scrapy框架利用css()方法(Method)來定位網頁元素的基本用法,重點摘要如下:
1.取得單一元素值呼叫get()方法(Method)
2.取得多個元素值呼叫getall()方法(Method)
3.取得文字內容,加上「::text」關鍵字
4.取得屬性值則加上「::attr(屬性名稱)」關鍵字
希望對於想要學習Scrapy框架的朋友有所幫助。
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2021/01/scrapy-css-selectors.html
)網站觀看更多精彩內容。
2 0 364 0

熱門精選

104學習精靈

產品

02/10 23:02

【免費報名】零經驗↘只要12週↘您也可以轉職資料工程師。專業技術養成班|線上開課說明會
想轉換跑道當資料工程師,但又不知道如何開始?
坊間這麼多培訓班,怎麼能跟業界銜接?
報名在這邊 > >
緯育TibaMe x 104學習精靈 現正舉辦【跨領域轉職資料工程師。課程說明會】
透過12週培訓課程:從基礎 → 進階、團體專題,課後就業媒合,協助您成功轉職!
【本場說明會包含兩個資料工程師_聯合招生說明】
A【資料工程師_養成班】 3/10 確定開班
課程相關完整介紹搶先看:
B【資料工程師_在職班】 4/15 確定開班
課程相關完整介紹搶先看:(後補)
【班級滿額就無法再招生,趕緊報名搶席次吧!】
--------------------------------
本課程將提供104報名會員優惠,優惠折扣將於線上說明會揭曉:
⚡ 線上說明會 | 緯育TibaMe的優惠,透過104活動吧報名,才享有該優惠。
⚡ 確認報名課程,可享 緯育TibaMe 相關付款優惠(例如:信用卡分期...等)
真的!席次最後倒數!免費報名!相信自己一次!
--------------------------------
【報名場次】
🔴 2/15 (六) 11:00~12:00 | 報名到2/14 (五) 18:00
線上說明會連結與資訊,將於2/14(五)18:00 後陸續發送到您報名的電子郵件信箱。
🔴 2/22 (六) 11:00~12:00 | 報名到2/21 (五) 18:00
線上說明會連結與資訊,將於2/21(五)18:00 後陸續發送到您報名的電子郵件信箱。
🔴 2/27 (四) 20:00~21:00 | 報名到2/26 (三) 18:00
線上說明會連結與資訊,將於2/26(三)18:00 後陸續發送到您報名的電子郵件信箱。
0 1 10357 2
104學習精靈精選課程
看更多課程
想提升職場競爭力?專業技能課程看起來👇
Mike Ku

Learn Code With Mike品牌創辦人

2022/01/15

掌握Scrapy框架重要的CSS定位元素方法(上)
想要開發Python網頁爬蟲的朋友,都會知道定位元素(Element)是一個非常重要的動作,Scrapy框架本身就有提供自己的定位元素(Element)方法(Method),包含CSS與XPath兩種,本文就以INSIDE硬塞的網路趨勢觀察網站-AI新聞( https://www.inside.com.tw/tag/ai )為例,先來和大家分享在Scrapy框架中,如何利用CSS的定位元素(Element)方法(Method),爬取想要的網頁內容。
Q: Scrapy如何利用CSS方法取得單一元素值?
CSS(Cascading Style Sheets)階層樣式表相信大家都不陌生,可以自訂樣式的類別來裝飾網頁,像是字體顏色、粗體等,所以在利用Scrapy框架開發網頁爬蟲時,也就能夠利用CSS樣式類別,來定位想要爬取的網頁元素(Element)。
前往INSIDE硬塞的網路趨勢觀察網站-AI新聞,在文章標題的地方,點擊滑鼠右鍵,選擇檢查,可以看到它的CSS樣式類別。假設想要在Scrapy框架中,利用CSS樣式類別來取得網頁的單一元素值,也就是單一文章的標題,就可以在spiders/inside.py的parse()方法(Method)中,使用css()方法(Method)來定位單一元素(Element),如下範例:
import scrapy
class InsideSpider(scrapy.Spider):
name = 'inside'
allowed_domains = ['www.inside.com.tw']
def parse(self, response):
title = response.css("a.js-auto_break_title::text").get()
print(title)
接著,利用以下的指令執行inside網頁爬蟲:
$ scrapy crawl inside
以上範例,response就是Scrapy框架請求後的回應結果,接著,呼叫css()方法,傳入所要定位的HTML標籤<a>,點的後面加上它的CSS樣式類別,由於要取得元素(Element)的文字,所以在加上「::text」關鍵字,最後,呼get()方法(Method)取得單一元素(Element)。
Q: Scrapy如何利用CSS方法取得多個元素值?
而在Scrapy框架中,想要爬取網頁多個元素值,則呼叫getall()方法(Method)即可,如下範例:
import scrapy
class InsideSpider(scrapy.Spider):
name = 'inside'
allowed_domains = ['www.inside.com.tw']
def parse(self, response):
titles = response.css("a.js-auto_break_title::text").getall()
print(titles)
可以看到getall()方法(Method)回傳的是一個串列(List),包含了所有樣式類別為「js-auto_break_title」的<a>標籤文字,接下來,利用迴圈即可取得其中的文章標題,如下範例:
import scrapy
class InsideSpider(scrapy.Spider):
name = 'inside'
allowed_domains = ['www.inside.com.tw']
def parse(self, response):
titles = response.css("a.js-auto_break_title::text").getall()
for title in titles:
print(title)
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2021/01/scrapy-css-selectors.html
)網站觀看更多精彩內容。
2 0 179 0

推薦給你

104學習精靈

產品

4小時前

【學習0負擔,職涯成長100%】刷卡分期 0 利率,輕鬆進修!
想提升職場競爭力,卻擔心學習費用負擔太大?
現在,104學習精靈推出:刷卡分期 0 利率分期服務,讓你無壓力學習,快速成長!
💡 單筆消費滿 4,000 元 享 3 期 0 利率
💡 單筆消費滿12,000 元 享 6 期 0 利率
無論是提升專業技能,還是轉職跨領域,現在是最佳時機!
利用彈性付款方式,投資自己,迎接更好的職涯發展。
【精選課程整理】立即選擇適合你的課程,開啟無壓學習之旅!
⚡ Linux系統建置實務 【享 3 期 0 利率】
加碼:領 折$1000送百點 優惠券現折
⚡ 碳管理師菁英班 【享 3 期 0 利率】
加碼:領 折千元↘送2百點 優惠券現折
⚡ 【轉換率優化集訓班 】進階應用 【享 3 期 0 利率】
加碼:領 折1102 元 優惠券現折
⚡ 行銷人的 GTM 實戰工作坊【享 3 期 0 利率】
⚡ 【RevitBIM】AR建築BIM建模師養成班(台中) 【享 6 期 0 利率】
加碼:領 折 2000 元 優惠券現折
⚡ 【RevitBIM】AR建築BIM建模師養成班(台北) 【享 6 期 0 利率】
加碼:領 折 2000 元 優惠券現折
⚡ 【RevitBIM】MEP五大系統整合實務班(贈 iCAP消防空調 雙證班) 【享 6 期 0 利率】
加碼:領 折 2000 元 優惠券現折
⚡ 嵌入式Linux設計開發 【享 6 期 0 利率】
加碼:領 折 3000 元 優惠券現折
⚡ MCU應用設計[ARM Cortex-M 應用設計] 【享 6 期 0 利率】
加碼:領 折 3000 元 優惠券現折
⚡USB韌體設計 【享 6 期 0 利率】
加碼:領 折 3000 元 優惠券現折
⚡壓力管理工作坊:釋放壓力,喚醒自信 【享 3 期 0 利率】
加碼:領 折 999 元 優惠券現折
⚡NPDP產品經理國際認證培訓班(2025/03/22 實體班) 【享 6 期 0 利率】
加碼:領 折 1999 元 優惠券現折
⚡ WBSA商務行銷企劃師國際認證培訓 (2025/03/22實體班) 【享 6 期 0 利率】
加碼:領 折 1999 元 優惠券現折
⚡AWS雲端解決方案架構師考證班 【享 6 期 0 利率】
加碼:領 折 7500 元 優惠券現折
⚡ AI-Agent實作課- 打造AI助理解決工作SOP【享 6 期 0 利率】
【提醒】加碼優惠有時效性,請依照各課程頁說明為基準。
0 0 16 0
你可能感興趣的教室