前言
其實json的網頁,用python的request做應該是最快。但誰叫我已經架好了scrapyd的伺服器…
只好繼續用scrapy了。
正文
在start_urls可以直接指定json的路徑
start_urls = [
https://www.myfxxxxx.com/login.json
]
def start_requests(self):
mail = "xxxxxxx"
pw = "1232323"
url = "https://www.myfx.com/api/login.json?mail={0}&pw={1}".format(mail,pw)
print("startURL:"+url)
yield scrapy.Request(url, callback = self.parse) #重寫了爬蟲類的方法, 實現了自定義請求, 運行成功後會調用callback回調函數
def parse(self, response):
body = json.loads(response.body_as_unicode())
print(body['session'])
url = "https://www.myfx.com/api/geounts.json?session={session}".format(session=body['session'])
#self.log(self.url)
if url:
yield scrapy.Request(url,callback=self.assignURL)
可以覆寫start_request的函數,
設定參數,到下一個callback的function parse
使用了json.load將資料讀入,並重新編碼。
要使用的話,直接用括號取欄位名稱 即可。
ref.
Learning Scrapy筆記(六)- Scrapy處理JSON API和AJAX頁面
Scrapy:抓取返回數據格式為JSON的網站內容
Find a value in JSON using Python
How to use JSON with Python
0 意見:
張貼留言