iT邦幫忙

0

Python 爬特殊頁面疑問

前輩、老師好
後輩我是自學的語言新手
最近學了Python,希望更有成就感並開始學了爬蟲

目前想要爬取類似這樣的有多樣化選單的網頁
類似網站:台北研討會全球資訊網
看了一下原始碼,這樣算是使用javascript加載的網頁數據嗎

除了用selenium+phantomjs還有其他方法嗎

爬蟲的部分目前只玩到BS套件
selenium+phantomjs還學過,是想說看有沒有其他方案
如果未來我想要export成exe檔,用上述方式是可行的嗎

感謝前輩、老師的指導,如有需要補充的請告知。

2 個回答

0
plusone
iT邦新手 5 級 ‧ 2018-11-13 11:15:51
最佳解答

嗨,這個的話可以用requests post帶表單的參數給它就行了
直覺一點可以用selenuium去點擊按鈕之後再取,像是:

from selenium import webdriver
from bs4 import BeautifulSoup
driver = webdriver.Firefox()
driver.get("http://www.taipei-seminar.com.tw/index.php") 
driver.find_element_by_name('btnSearch').click()
source = driver.page_source

這樣你就可以取到點擊按鈕後畫面的html內容
再來就可以依照你要的去取值了
舉個簡單的例子,找出所有表格內的字:

soup = BeautifulSoup(source, 'lxml')
for td in soup.select('td'):
    print(td.text)

Imgur

其實再來就看你需要哪些內容,再去依照要的格式做解析囉!
希望有幫助到你!

啊啊,前輩謝謝你,原本想說是希望有人給我方向,自己去思考就好
沒想到連程式碼也寫出來了...XD
同問froce前輩的問題,關於基本知識有沒有大家比較公認應該學到哪裡就好,像我這樣的人會認為可能要全部學完才叫基本...
再次感謝~

plusone iT邦新手 5 級 ‧ 2018-11-14 12:55:17 檢舉

爬蟲的話當然基礎的html元素架構要知道,再來像是HTTP請求之類的吧,python的話可以用學flask,寫個簡單的api、form表單頁面去理解觀念(你會發現你上面的網頁也有form表單,所以自己能夠寫了就會知道怎麼請求)。
我一開始也是從寫網頁開始(但沒有繼續深入)所以就像froce前輩說的寫爬蟲門檻有低一點。
像其實你這個問題可以用post(python requests)就能取到內容了不用用selenuium(想說你發問的時候說有接觸)
那這個部分就給你自己去試試看了 加油!

0
froce
iT邦高手 1 級 ‧ 2018-11-13 09:05:03

每次看到人要學爬蟲,我都會直接叫人先去寫網頁。
把網頁搞通了,爬蟲通常都很容易上手,因為這只是一體兩面的東西。
但是網頁不懂,你要學爬蟲,HTML、JS等基礎知識你還是要會,不如就直接學寫網頁了。

你丟的這個網頁是很基本的後端rendering網頁,JS用的很少,連排版都還是用table去排,基本上用requests去爬就ok了,連selenium都用不到。

前輩謝謝拉
我只有先略懂一些HTML標籤的知識
另問前輩,如果就基本知識,能怎樣定義,因為我不知道要學到哪裡才叫做基本。
再次感謝

我要發表回答

立即登入回答