使用MMA进行爬虫以及api调用的问题
mathematica吧
全部回复
仅看楼主
level 5
JarvisIven 楼主
在使用MMA进行信息爬取时遇到了一些问题,使用MMA13.0,win10环境,需要使用MMA来爬取vikacg中连续签到用户的数据
尝试使用f12进行抓包并且获取到了可能的api接口,参见代码中的网址。
代码如下:
req = HTTPRequest[
FromCharacterCode[{104, 116, 116, 112, 115, 58, 47, 47, 119, 119,
119, 46, 118, 105, 107, 97, 99, 103, 46, 99, 111, 109, 47, 119,
112, 45, 106, 115, 111, 110, 47, 98, 50, 47, 118, 49, 47, 103,
101, 116, 77, 105, 115, 115, 105, 111, 110, 76, 105, 115, 116}], <|
"Method" -> "POST"|>]
执行后仅返回了第一条数据,也就是仅返回在签到板上排名第一的用户数据
问题就出在仅返回部分数据,在网页上通过f12可以看出调用的该api返回payload有20组用户的数据,之后尝试通过增加headers中的数据来尝试获取更多数据,还是失败。最后无奈只能通过模拟浏览器才解决,但是还是想使用api来获取完整的数据,请问我在调用api的时候参数是否遗漏了什么?或者是api本身调用的问题?
2023年02月05日 05点02分 1
level 5
JarvisIven 楼主
由于不能带外链,所以使用了ToCharacterCode将链接转为字符代码,直接复制黏贴后即可执行
2023年02月05日 05点02分 2
level 5
JarvisIven 楼主
全部的代码为
req = HTTPRequest[
FromCharacterCode[{104, 116, 116, 112, 115, 58, 47, 47, 119, 119,
119, 46, 118, 105, 107, 97, 99, 103, 46, 99, 111, 109, 47, 119,
112, 45, 106, 115, 111, 110, 47, 98, 50, 47, 118, 49, 47, 103,
101, 116, 77, 105, 115, 115, 105, 111, 110, 76, 105, 115, 116}], <|
"Method" -> "POST"|>]
URLExecute[req]
前面的误删了后面的URLExecute
2023年02月05日 05点02分 3
吧务
level 10
。。你起码得提供一个「正常工作情况」的信息吧,哪怕是F12请求界面的截图
2023年02月05日 09点02分 4
抱歉。5,6楼是f12界面获取的数据,可以看出data里面有10组数据,6楼是执行代码后得到的字符串,只有第一组数据
2023年02月05日 18点02分
level 5
JarvisIven 楼主
2023年02月05日 18点02分 5
level 5
JarvisIven 楼主
{pages->71280,data->{{user->{id->129431,sex->0,name->ikali,link->,avatar_we
bp
->,desc->,user_title->,verify->,verify_icon-><i class="b2-vrenzhengguanli b2font b2-color"></i>,cover->,lv->{vip->{name->,lv->,icon->,color->,time->0},lv->{name->LV5,credit->0,lv->lv5,icon-><span class="lv-icon user-lv b2-lv5"><b>LV5</b><i>lv5</i></span>,lv_next->lv6,lv_next_name->LV6,lv_next_credit->0,lv_ratio->58}},cover_webp->},credit->629,date-><time class="b2timeago" datetime="2023-02-06 00:13:20" itemprop="datePublished">2小时前</time>,count->585,_date->2023-02-06 00:13:20}}}
2023年02月05日 18点02分 6
吧务
level 13
漏了POST参数
count=20&paged=1&type=always
2023年02月11日 12点02分 7
1