|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
原来没有老老实实写过PQ的网抓的操作步,这次就和你一起复习一下。我把参数逐个试了个遍,最后精简成这样:
- let
- Scrape = (pg as number) =>
- let
- url = "http://dcfm.eastmoney.com/em_mutisvcexpandinterface/api/js/get",
- qry = [type="XGSG_LB", token="70f12f2f4f091e459a279469fe49eca5", st="purchasedate,securitycode", sr="-1", p=Text.From(pg), ps="50"],
- web = Table.FromRecords(Json.Document(Text.FromBinary(Web.Contents(url, [Query=qry]))))
- in
- web,
-
- Source = Table.Combine(List.Transform({1..50}, each Scrape(_)))
- in
- Source
复制代码
先说第2点,从浏览器的抓包来看,每个页面都是GET请求,所以这两种写法等效:
- Web.Contents("http://xxx.xx.xxx/get?kw1=aa&kw2=bb&kw3=cc")
- Web.Contexts("http://xxxx.xx.xxx/get", [Query=[kw1="aa", kw2="bb", kw3="cc"]]
复制代码 我耐着性子把Query和Headers里的参数试了个遍,貌似st是用来排序的,sr不详但还是得要,p是当前页数,ps是每页显示数量;其他的参数都省略了,好像没什么影响。
你提到的第1点行不通,因为那样没办法把“第x页”作为参数传递进去;这里要对@deadzlq老师表达一下敬佩之情,原来从没留意过Text.Format(Url,{_})的语法,今天总算看到实际的用法了!
|
评分
-
2
查看全部评分
-
|