iT邦幫忙

2

python 爬蟲 從string找到標籤位置

爬取該網域時,發現不同的頁面網頁架構都不同。
所以想從String下去收尋找到該tag位置。
網頁如下:
http://ewda.tw/modules/ewda_action/action.php?asn=3985

例如:抓取”費用“這個字串,得到tag後抓取下一個的tag,就會得到我想要的數字。
一開始我以為規則是固定的,所以都抓取最上面的div區塊
但有些頁面他會添加一些備註,就會跑掉了。

目前的問題就是講師和費用這兩個不知道要用什麼方法抓好...
試了很多關鍵字搜尋都找不到

BTW, 我目前都是用BS在分解及擷取網頁資訊
是否需要用到Scrapy?

請前輩給我個概念或者關鍵字應該要打什麼能找到
都行

謝謝前輩們的耐心及回覆

froce iT邦大師 1 級 ‧ 2018-12-27 08:08:21 檢舉
各種情形的網頁都舉個例子。

通常表格的話,我都會先把那一列資料(tr)整個先抓出來,然後再處理。
force前輩好,我有試過鎖定這個頁面的tr,但因爲他發布的課程網頁,沒有固定的規律性,所以以至於當我丟入另一個url,一開始所鎖定的tr,就會抓到別的文字。所以我才會想說是否能先鎖定文字(因為他文字是固定都會出現),在找到該tag ,這樣就可以解決我的問題。
froce iT邦大師 1 級 ‧ 2018-12-28 00:15:45 檢舉
你先把你會出錯的頁面也列出來。
是可以先鎖定文字,我在處理表格,通常會先找出含關鍵字的td,然後再往上找tr,再往下找要的td。
所以我才說我會先把那列找出來。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1

一般我在做分析解析原則,是會搭配正則式來做規劃處理的。

其實你用 Scrapy 來處理會比較快。這也是為何有人說爬蟲用 python 來爬最好處理的因素之一。

我並不是用python來爬的,處理起來很麻煩的。一般我都是搭配正則來做判斷處理。

前輩好,因爲是想說如果能用BS解決,就這樣finish。目前剛接觸python差不多一個月多,還沒深入到Scrapy。當然如果只能用scrapy做,我就只好先去學了XD。

0
paicheng0111
iT邦大師 5 級 ‧ 2018-12-27 15:17:56

費用資訊應該是在第1個div.boxcontent裡面的table內的某個tr的第2個td
講師資訊應該是在第2個div.boxcontent裡面的第3個p內的某個span

前輩好,抱歉問題沒有打清楚,就單一頁面抓取我沒問題,但是換到另一個頁面就會跑掉,所以才想說有沒有從文字下去反查的方法,還是謝謝前輩回覆

哪一個頁面?

我要發表回答

立即登入回答