- 帖子
- 109
- 主題
- 1
- 精華
- 0
- 積分
- 116
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- 2007
- 閱讀權限
- 20
- 註冊時間
- 2016-8-4
- 最後登錄
- 2018-10-22
 
|
61#
發表於 2016-9-10 21:55
| 只看該作者
前幾天c大回覆的時候有貼了vba的code,讓我想到如果找一些在excel版的問題用python試做看看,也許有興趣的朋友可以相互參照。
抓資料很多問題想起來不困難,但像我都只做簡單的應用,經驗有限,真要做比較完整的資料爬取,撞牆的細節問題想必非常多。
最近比較有時間,剛好趁這個機會練習一下。歡迎版上的朋友一起研究討論,如果有其他使用python的前輩,也請不吝給我一些提點跟建議。
一開始我想就從這篇開始http://forum.twbts.com/thread-18259-1-2.html。
GBKEE版大已經用vba提供了很好的解決方案,但若是想換個口味還是可以用python試試看把資料爬取下來。
網址網址:http://church.oursweb.net/slocation.php?w=1&c=TW&a=&t=&p=
網頁看起來沒有什麼奇奇怪怪的javascript,如果只是要抓圖片中的簡易資料,那只要:- #準備工具
- import requests
- from bs4 import BeautifulSoup
- #建立一個session
- s = requests.session()
- for i in range(11,14):
- #網址變動的只有最後一個數字,共286頁,用range(1,287)就可以把所有數字跑過一次
- #測試時請不要跑太多頁,用(1,3)、(11,14)、(280,283)之類的就好
- url = 'http://church.oursweb.net/slocation.php?w=1&c=TW&a=&t=&p=' + str(i)
- res = s.get(url)
- #若收到的res文字為亂碼就加個encoding
- res.encoding = 'utf-8'
- soup = BeautifulSoup(res.text, 'lxml')
-
- #取得資料,我們要的資料都存在這兩種tr裡
- data = soup.find_all('tr',['tb__a', 'tb__b'])
- #將資料印出
- for d in data:
- print(d.text)
-
- i += 1
複製代碼 那如果要收集詳細資料呢?那就要取得每頁裡的各個教會的連結,一個一個進去爬取。 |
|