★ 前言

主要是為了製作一個簡易爬蟲,然後在 android 裡面實作其實有點拖慢效能,另外一個是無法自己掌握資料,只能爬出來是什麼就是什麼,而且有時網頁有更動的話還要重新撰寫再包成 apk 釋出,但而外製作就不會有這個問題,同時 android 還是吃自己的資料。

簡單來說就是自己包成一個接口,說到這本來想自己開個 server 然後用 api 來做
可是發現我的信用卡還沒開通國外付款的功能......
AWS 的再申請就延遲到現在還沒處理......

另外由於是筆記,所以會有些流水帳,以後再慢慢整理~ :p

★ 正文

サービスです

1. 安裝

python2
brew install python
python3
brew install python3

在此說明一下, python 有分 python2 python3 ,我個人使用 python3 ,主要一些語法有些差異這邊要注意一下
其他稍微 survey 後其實覺得沒差太多,就直接選用 python3 ,但大家要注意網路上許多資源都是 python2 的應用, python3 本身要使用時通常都會再加個3,至於要如何選,我覺得目前看個人喜好吧~

安裝完後,開啟 terminal 打指令:

Python 查看版本
  ~  python --version
Python 2.7.10
  ~  python3 --version
Python 3.5.1

經過這一查我才發現我也有裝 python2...
不過這樣就安裝完了,可以進行開發實作了~

延伸閱讀:Django
雖然我是要做爬蟲,不過做網站的資料留著還是不錯的~

補充:

如果不能用 brew 指令的話其實官網也有提供安裝檔下載安裝,不過這邊提供一下 brew 的安裝指令

brew 安裝指令
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

不過看似是需要 ruby ?如果是這樣,就還要再去安裝 ruby...(是有沒有這麼麻煩),我會有主要是因為之前想學 ruby on rails,不過最近停下先學 python 了

2. 開發環境

在此順便記錄一下,順著 FB 大神得到的幾個資訊:

PyCharm
@白昌永 還有bpython,記得前面有「b」

@蔡昇哲 給個tips好了…在檔案最前面加上
#!/usr/bin/env python
然後chmod +x [檔名]
之後就可以當shell script跑了($ ./[檔名])
@蔡昇哲 正確來說是可以在shell當成可執行檔啦

不過在找尋 IDE(開發環境)的時候,我先查看了其他人是怎麼做爬蟲的,然後就查到了這個爬 youtube 來源的影片:


《如何使用Python 爬蟲 (Python Crawler) 下載Youtube 影片》

然後他使用的是一個叫 jupyter 的開發環境,可以開發一行就直接 run 出結果,滿方便的所以我就選用他了。

Jupyter 安裝

Jupyter 安裝
指令:

Python2
pip install jupyter
Python3
pip3 install jupyter

安裝完之後,只要再打這個指令就能在 browser(瀏覽器)開啟 jupyter

jupyter notebook

這是開啟的指令,這時 terminal 就不能輸入其他指令(可開其他 tab ),需要關掉時, mac 要按 control + c
若是下 python3 ,將會直接在 terminal 中進行開發,離開快捷鍵是 control + d

右上方有個 new 的按鈕,點下去後會出來 python3 的選項,選下去後就可以像上面影片一樣使用 jupyter 進行開發了

再來補一下 jupyter 的爬蟲教學 Jupyter Crawler

3. 開始撰寫

首先我們要認知到做爬蟲第一個就是要先用 http protocal 來使用 GET POST DE......太多不贅述好了,我目前只用到 GET
總之,上面影片是 python2 的用法,如果大家是 python3,就要 import 不同的 lib
除了連線用的 lib 外,然後是分析 html 的 lib......
整理一下好了

  1. HTTP Request
  2. HTML Parser
  3. Regex(Regular Expression)
HTTP Request
from urllib.request import urlopen
HTML Parser
from bs4 import BeautifulSoup
Regex(Regular Expression)
import re

上述三個 lib ,要注意的是 BeautifulSoup
這個 lib 需要額外進行安裝 lib,正確來說是要引用進 python 環境中(廢話)
主要是只有這個 lib 並未包含在 python 中,所以一開始安裝時並不存在

BeautifulSoup 安裝 python2
pip install BeautifulSoup
BeautifulSoup 安裝 python3
pip3 install BeautifulSoup

打到這邊應該有發現,只要需要用到 python 或 pip 指令的地方,加個3的數字就是 python3 了~

然後由於我分析完後要做資料確認與儲存,所以我有另外使用 json 跟 output 的 lib
這部分就是看大家需求有需要使用才用,上面三個是分析回來的資料必要的 lib,有這三個 lib 才減少了很多時間
也因此整體上比 java 更簡單使用

from json import load
from pprint import pprint

重要資訊

在撰寫時,大家應該會發現 python 沒有 code blocks,類似 for loop 迴圈、if else 的區域的大括弧
此時不要太緊張,python 是用縮排代替了 {} 的使用,所以在撰寫時,大家要注意縮排的位置,避免邏輯上出錯。

由於開始本格的撰寫內容分析還遇上的各種問題,所以我在另外寫一篇或許會更好,避免太多資訊塞在同一篇裡

參考資料

網路爬蟲範例
Python imoport BeautifulSoup Search
Python imoport BeautifulSoup

未使用之參考資料

xlrd & xlwt, excel file
基礎python資料傳遞

Comments

comments powered by Disqus