由于数据是js生成的,所以用火狐开发工具分析,找出了产生数据内容的请求:url和参数。
如何利用url+参数,在客户端进行模拟post请求,也能获得数据。
绿框:加载的数据
左红框:请求url
右红框:参数
地址:http://pubs.rsc.org/en/results?searchtext=Author%3Alingling%20ge
选项:
- 封装一层 XMLHttpRequest 用来模拟 (啊哈哈哈哈, 我闲的蛋疼我骄傲).
- 封装一层 request 用来模拟.
- Fiddler 或者其他工具用来模拟 (不知道 Chrome 有没有类似插件).
需要依赖工具来实现,例如浏览器扩展,基于node的工具,其他抓包工具例如Fiddler等
chrome postman
- 有界面的REST/HTTP API Client工具,例如我经常使用的DHC Chrome插件(要翻墙)等
- 命令行工具curl
-
python的requests库,号称是给人使用的HTTP工具
r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
print r.status_code # 200
print r.headers['content-type'] # 'application/json; charset=utf8'
print r.encoding # 'utf-8'
print r.text # u'{"type":"User"...'
print r.json() # {u'private_gists': 419, u'total_private_repos': 77, ...}
shell下的curl,python的requests,chrome的postman等等,都可以啊