楼主: fcfc2013
1411 2

[有偿编程] 调试 自定义函数 [推广有奖]

  • 3关注
  • 1粉丝

已卖:1169份资源

博士生

76%

还不是VIP/贵宾

-

威望
0
论坛币
7223 个
通用积分
6.2147
学术水平
12 点
热心指数
26 点
信用等级
9 点
经验
14348 点
帖子
307
精华
0
在线时间
285 小时
注册时间
2013-2-13
最后登录
2020-2-7

楼主
fcfc2013 发表于 2018-9-1 09:30:29 来自手机 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我自定义一个函数,使用POST方式请求获取数据。
[code]PartTrackList_API <- function(CarNun, CarId){
  url <- 'Report/PartTrackList/Search'
  
  payload <- list(RptTimeCtrl.BeginTime      = '2018-08-30 00:00:00',
                  RptTimeCtrl.EndTime        = '2018-08-31 00:00:00',
                  rows                       = 200,
                  page                       = 1,
                  OrgAndCarList.Text         = '',
                  OrgAndCarList.OrgId        = 1,
                  OrgAndCarList.CarNun       = CarNun,
                  OrgAndCarList.CarId        = CarId,
                  DistanceTime.SelectedValue = 30)
  
  PartTrackList <- POST(str_c(TopGPS_url, url),
                        add_headers(.headers = headers),
                        set_cookies(.cookies = cookies),
                        body = payload,
                        encode ="form", verbose(), accept_json()) %>%
    content("raw") %>%
    str_conv("utf-8") %>%  
    fromJSON() %>% `[[`(2) %>%
    sapply(., unlist)
  

  PartTrackList[row.names(PartTrackList)=="platenum"]      -> 车牌号码
  PartTrackList[row.names(PartTrackList)=="platecolor"]    -> 车牌颜色
  PartTrackList[row.names(PartTrackList)=="speed"]         -> 速度
  PartTrackList[row.names(PartTrackList)=="longitude"]     -> 经度
  PartTrackList[row.names(PartTrackList)=="latitude"]      -> 纬度
  PartTrackList[row.names(PartTrackList)=="mileage"]       -> 行驶里程_公里
  PartTrackList[row.names(PartTrackList)=="position"]      -> 地址
  PartTrackList[row.names(PartTrackList)=="beingtime"]     -> 点火时间
  PartTrackList[row.names(PartTrackList)=="endtime"]       -> 熄火时间
  
  PartTrackList <- data.frame(车牌号码, 车牌颜色, 速度, 经度, 纬度, 行驶里程_公里, 地址, 点火时间, 熄火时间, stringsAsFactors = F)
}[/code]
函数中有2个参数: “carnum”, “carid”  
测试此函数可以正常的运行,并返回数据(POST 请求回JSON格式,我解析成数据框)
有一百多个  “carnum”, “carid”    需要放入 parttracklist_API 函数中运行, 我就用 mapply : m_part <- mapply(parttracklist_API, carlist$carnum, carlist$carid)  
这个 m_part 可以正常运行, 后台看到POST请求正常,但是无数据。
后 发现单独使用 parttracklist_API(carlist$carnum, carlist$carid)  可以正常返回数据,加上 mapply 可以运行,但无数据返回。
这个是什么原因?  post 太频繁,速度过快吗?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:自定义函数 自定义 longitude position function mapply 自定义函数

沙发
啊啊啊啊啊吖 发表于 2018-10-9 16:41:33
帮楼主顶一下,希望帖子能够尽快有大神帮忙解决

藤椅
jiangbeilu 学生认证  发表于 2018-10-9 22:35:44
如果用mapply,可能类似并发的请求,被网站给干掉了。
你可以用循环慢慢来吧,毕竟你要从人家这里要数据,不能太占用人家的资源。
已有 1 人评分论坛币 收起 理由
cheetahfly + 10 精彩帖子

总评分: 论坛币 + 10   查看全部评分

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 08:54