要擷取特定網頁內容的第一步,就是要先了解該網頁的組成。

Python有urlparse套件可以用來剖析URL,

可以參考:

https://docs.python.org/3.5/library/urllib.parse.html?highlight=urlparse#urllib.parse.urlparse

 

以在某拍賣平台鍵入關鍵字「anello」為例,

這是搜尋後所顯示的網址:

http://search.ruten.com.tw/search/s000.php?enc=u&searchfrom=indexbar&k=anello&t=0

當按下「第二頁」的搜尋結果時,所顯示之網址為:

http://search.ruten.com.tw/search/s000.php?enc=u&searchfrom=indexbar&k=anello&t=0&p=2

當按下「第五頁」的搜尋結果時,所顯示之網址為:

http://search.ruten.com.tw/search/s000.php?enc=u&searchfrom=indexbar&k=anello&t=0&p=5

可以觀察上述網址發現網址最後的參數隨著user的換頁而變化,

下面是以urlparse套件來對網址進行解析

 

執行結果印出

 ParseResult(scheme='http', netloc='search.ruten.com.tw', path='/search/s000.php', params='', query='enc=u&searchfrom=indexbar&k=anello&t=0&p=5', fragment='') 

 

再以某入口網站的電影排行為例,

這是進入電影排行榜的網址:https://tw.movies.yahoo.com/chart.html

點選每一個排行榜的分類,例如:年度票房榜、週冠軍票房榜、全美票房榜......等,

觀察網址列可以發現網址最後的參數在變化,如下:

https://tw.movies.yahoo.com/chart.html?cate=year

https://tw.movies.yahoo.com/chart.html?cate=week

https://tw.movies.yahoo.com/chart.html?cate=us

一樣以上例的程式碼(urlparse套件)來對網址進行解析,印出

 ParseResult(scheme='https', netloc='tw.movies.yahoo.com', path='/chart.html', params='', query='cate=us', fragment='') 

 

接下來可以利用splitlines()來一行行擷取特定網頁的原始碼,

 

印出的內容為:

py001.PNG

可以利用瀏覽器開啟該網頁,並檢視原始碼,發現真的成功擷取了第1~15行的內容啦~~

 

 

py002.PNG

 


還請不吝指教 =)

 

 

arrow
arrow
    文章標籤
    python crawler
    全站熱搜

    Jialin 發表在 痞客邦 留言(0) 人氣()