[已解决] 怎么设置访问网页的延迟时间

  [复制链接]
查看149596 | 回复140 | 2020-9-24 18:24:39 | 显示全部楼层 |阅读模式
10082100931421.png

要获取1000条IP地址的信息,实际只能获得几条,我估计是这个函数访问太快了,麻烦大神指导下

= Web.Page(Web.Contents("http://ip.taobao.com/service/getIpInfo.php?ip=" & IP地址))
回复

使用道具 举报

bateer2002 | 2020-9-24 18:32:39 | 显示全部楼层
有离线的ip地址库
回复

使用道具 举报

FI~鱼~SH | 2020-9-24 18:34:40 | 显示全部楼层
可以加延迟,但是比较复杂,你可以看下这篇文章 https://blog.crossjoin.co.uk/201 ... ter-in-power-query/

下面这段是可以设置间隔时长和自动重试的代码
let
  Value.WaitFor = (producer as function, interval as function, optional count as number) as any =>
  let
    list = List.Generate(
      () => {0, null},
      (state) => state{0}  null and (count = null or state{0}  if state{1}  null
      then {null, state{1}}
      else {1 + state{0}, Function.InvokeAfter(() => producer(state{0}), interval(state{0}))},
      (state) => state{1})
  in
    List.Last(list),
  Web.ContentsCustomRetry = (url as text, optional options as record) => Value.WaitFor(
  (i) =>
    let
      options2 = if options = null then [] else options,
      options3 = if i=0 then options2 else options2 & [IsRetry=true],
      result = Web.Contents(url, options3 & [ManualStatusHandling={429}]),
      buffered = Binary.Buffer(result), /* avoid risk of double request */
      status = if buffered = null then 0 else Value.Metadata(result)[Response.Status],
      actualResult = if status = 429 then null else buffered
    in
      actualResult,
  (i) => #duration(0, 0, 0, i*0.1))
in
  Web.ContentsCustomRetry("http://www.bing.com")
回复

使用道具 举报

搏斗小子 | 2021-5-18 12:47:54 | 显示全部楼层
回个帖子,下班咯~
回复

使用道具 举报

咖菲猫 | 2021-7-28 15:33:05 | 显示全部楼层
这个不错,学习了
回复

使用道具 举报

beer | 2021-9-1 12:31:30 | 显示全部楼层
不错 支持一个了
回复

使用道具 举报

红胡子 | 2021-9-12 14:23:26 来自手机 | 显示全部楼层
沙发???
回复

使用道具 举报

zhwcft | 2021-11-4 09:25:34 来自手机 | 显示全部楼层
啊啊啊啊啊啊啊啊啊啊啊
回复

使用道具 举报

aaronliu | 2021-11-16 23:42:22 | 显示全部楼层
沙发~支持云发教育
回复

使用道具 举报

yuxin | 2021-11-19 06:15:23 | 显示全部楼层
好,很好,非常好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则