如何獲取資料:擷取網頁內容(下)

從 Python 與 R 語言使用 Selenium WebDriver 操控瀏覽器

Yao-Jen Kuo
數聚點文摘
Published in
14 min readJun 6, 2018

--

Photo by rawpixel on Unsplash

The world’s most valuable resource is no longer oil, but data.
The Economist — May 6th, 2017

摘要

如何獲取資料:擷取網頁內容(上)一文中討論如何從常見資料來源(檔案、資料庫與網頁)中的第三種來源:網頁的 html 檔案中擷取資料,即為人耳熟能詳的爬蟲技巧,我們知道如何使用 CSS 選擇器與 XPath 定位網頁資料,然後分別使用 pyquery 模組與 rvest 套件分別解析至 Python 以及 R 語言中,不過在文末面對到一個問題:無法憑藉電影名稱對應到該電影資訊的頁面。

本文簡介如何使用 selenium 自動化網頁測試工具連接 Python 與 R 語言,協助兩者的程式碼操控瀏覽器,進而前往含有指定電影資訊的網頁。

修飾擷取電影資訊的函數

首先我們將如何獲取資料:擷取網頁內容(上)撰寫的函數再修飾一番,原文中擷取電影特定電影的評分(Rating)、劇情類型(Genre)、海報圖片連結(Poster)和演員名單(Cast)是分開的四個函數;修飾成 get_movie_info(movie_url) 函數,可以將四個電影資訊儲存在一個 Python 的 dict 中或一個 R 語言的 list 中。

## {'rating': 8.8,
'genre': ['Action', 'Adventure', 'Fantasy'],
'poster': 'https://m.media-amazon.com/images/M/MV5BMjMxNjY2MDU1OV5BMl5BanBnXkFtZTgwNzY1MTUwNTM@._V1_UX182_CR0,0,182,268_AL_.jpg',
'cast': ['Robert Downey Jr.',
'Chris Hemsworth',
'Mark Ruffalo',
'Chris Evans',
'Scarlett Johansson',
'Don Cheadle',
'Benedict Cumberbatch',
'Tom Holland'…

--

--