很多网友都对这个感兴趣,对于需要验证的网站,怎么抓取数据,今天就举一个例子,问财输入关键字之后会有一个结果显示出来,但是你要看更多结果的时候就需要通过手机短信验证,这就是一个典型的需要验证的网站。
输入图片验证码与短信验证码之后,就会有一个cookie生成,同时也会有一个token,需要注意的是这两个都是有时效性的,如果cookie与token失效,需要刷新页面重新生成新的cookie与token。
既然要用到cookie与token我们就不能像匿名抓取时用一整串的网址修改参数来抓取了,其实道理是一样的,不过就是按照record的形式来书写。
为什么不试抓了,而是先定义函数?因为我们不能再像匿名抓取那样,用url就能直接出结果,没有cookie与token是不能获得正确结果的。
截图可能看不太清楚,代码贴在下面:
let
get_data=(page,token,cookie)=>
let
url="http://www.iwencai.com/stockpick/cache",
headers=[Cookie=cookie],
content="",
query=[token=token,p=Text.From(page),perpage="30",showType="[%22%22,%22%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22,%22onTable%22]"],
web_data=Web.Contents(url,[Query=query,Headers=headers,Content=Text.ToBinary(content)])
in
web_data
in
get_data
我们用了三个参数:
根据三个参数来试抓一下单页面:
试抓结果我们直接用JSON解析:
result就是我们想要的查询结果,对应的表头名称是oriIndexID。
我们查询的是涨停板数据一共有三页:得到三条记录。
展开记录留下数据与表头:
展开数据,自定义列生成记录,相当于一个股票代码一条记录:
删除前两列,展开记录就得到我们想要数据了。
大家可以试试,看看能不能够顺利抓取想要的数据。
@摆渡者I
页面更新:2024-05-21
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号