almost 3 years ago

這裡介紹以Python自帶的模組 urllib2 開發抓取MoneyDJ的人氣指數的爬蟲

[程式碼]

03_json.py
# encoding: utf-8

import urllib,urllib2
url = "http://www.moneydj.com/InfoSvc/apis/vc"
request = urllib2.Request(url) 
request.add_header("Content-Type","application/json")

payload = '{"counts":[{"svc":"NV","guid":"a180a15b-9e4f-4575-b28f-927fcb5c63a3"}]}'
response = urllib2.urlopen(request,data=payload)  
html = response.read()
print html

輸出結果

{"counts":[{"count":3609,"guid":"a180a15b-9e4f-4575-b28f-927fcb5c63a3","svc":"NV"}]}

[程式說明]

在這個範例程式中,我們要抓取MoneyDJ的人氣指數
由於此網頁的人氣指數並不是直接輸出在html原始碼中(原始碼的是假人氣資料)
而是另外透過http://www.moneydj.com/InfoSvc/apis/vc 這隻 api 去產生真實的人氣指數
且透過開發人員工具,我們也可以看到 request header 的 Content-Type 為 json
而此API是透過POST的方式傳遞資料,
我們直接將 Request Payload 的資料複製貼上(按下view source會產生程式內的格式)
程式輸出的結果就有包含正確的人氣指數3609

爬蟲系列教學文目錄
爬蟲系列教學文程式碼
安裝Python及Python常用語法可參考 Python - 十分鐘入門

← [爬蟲] 用POST方法與偽裝User-Agent抓取網頁(urllib2) [爬蟲] Parsing - 抓取網頁所有圖片(lxml) →
 
comments powered by Disqus