#1 - 2015-8-16 02:59
AWSL (AWSL)
新手刚学的网页抓取,之前一窍不通OTL(bgm102)
在磕磕盼盼中花了N长时间终于分析出了向 http://bgm.tv/FollowTheRabbit  POST账号信息就可以验证账号并拿到cookie。
之后就快了,马上就把用户设置的post结构也搞出来了。

但问题来了,我发现,bangumi的很多操作,比如删除观看信息,小组发帖,发日志,注销,都是向相应网页POST、GET数据,可是网址结尾必定带有一个值,这个值随着每次登陆账号都是变化的。估计是验证用的?
比如,我现在账户要登出的话,就是向这个地址“http://bgm.tv/logout/1292e236” GET,并且在head中附上cookie。
虽然如果在网页中分析一下元素,看一下代码就能拿到这个值,但这样不太适合写脚本和程序啊(bgm101)

我想问一下,这个值有没有办法不通过html页面分析来获得?
#2 - 2015-8-16 04:09
(宅男会虚构虚构老婆倒贴给虚构自己这件事究竟有什么错)
我觉得你可以找sai姐或者simon chan他们开发者要bgm的api看一下
#2-1 - 2015-8-16 10:13
AWSL
bgm那丁点api功能根本不够看啊。
#3 - 2015-8-16 05:57
(VIP已到期,请尽快续费)
不通过分析网页的的叫API,Bangumi目前没有你需求的API(小组发帖等),网页端本来就不是为了“方便脚本和程序”而制作的,而且使用API也不符合“网页抓取”的课题。

没有/1292e236,任何人都可以在自己网页放一个http://bgm.tv/logout/,你访问以后就“帮你”登出了。

你还是老老实实分析吧,不就一行字的事吗,好好做作业,不要老折腾bangumi……(bgm39)
#3-1 - 2015-8-16 06:38
dhzy
路过问一下netaba为什么跪了...
#3-2 - 2015-8-16 07:19
upsuper
不可能不加那个值,不然我把它写图片里你们就全跪了……
#3-3 - 2015-8-16 10:21
AWSL
感觉没有/1292e236也行啊,因为登出的时候必须在head中传递cookie,我试过,没有cookie光点这个地址会登出失败。这个值估计是为了方便服务器进行操作吧,单纯靠cookie验证身份可能会增加搜索帐户的负担。
嘛,主要是想问一下有没有办法不通过抓网页拿到这个值,比如访问bgm的某个地址,在返回的head中会夹带这个值,这写代码的时候就不用费心去搜索了。。。。
#3-4 - 2015-8-16 10:22
铃猫
上井葉心 说: 感觉没有/1292e236也行啊,因为登出的时候必须在head中传递cookie,我试过,没有cookie光点这个地址会登出失败。这个值估计是为了方便服务器进行操作吧,单纯靠cookie验证身份可能会...
当别人构造这个链接的时候,浏览器会自动带上当前用户的cookies的。。。
#3-5 - 2015-8-16 10:47
AWSL
MagicFish1990一边吃草一边 说: 当别人构造这个链接的时候,浏览器会自动带上当前用户的cookies的。。。
玩fiddle玩多了,忘记浏览器会自带cookie了。。。。。
#3-6 - 2015-8-16 11:48
upsuper
上井葉心 说: 感觉没有/1292e236也行啊,因为登出的时候必须在head中传递cookie,我试过,没有cookie光点这个地址会登出失败。这个值估计是为了方便服务器进行操作吧,单纯靠cookie验证身份可能会...
纯粹是为了防CSRF罢了……
#3-7 - 2015-8-16 14:58
若卡
dhzy 说: 路过问一下netaba为什么跪了...
被人刷炸了吧,不太清楚
#3-8 - 2015-8-16 16:20
dhzy
若卡 说: 被人刷炸了吧,不太清楚
咦那个站不是你在弄的么
#4 - 2015-8-16 10:19
(BGMのTrinitas<=>婊冈妈<=>补冈妈<=>拜冈妈 三位一体 ...)
恭喜LZ取得了“广告姬育成”初级成就
#4-1 - 2015-8-16 10:38
#4-2 - 2015-8-16 10:40
lhb5883-吹冈王♛⑩
MousHu 说:
广告姬不都这么折腾出来的么?
#4-3 - 2015-8-16 10:40
MousHu
lhb5883 说: 广告姬不都这么折腾出来的么?
给刷分机也提供了不错的指导意见 ~ (bgm97)
#4-4 - 2015-8-16 10:46
AWSL
233别这样。你不觉得有了这个,安卓,苹果客户端功能就会很强大吗(口胡
#4-5 - 2015-8-16 10:52
lhb5883-吹冈王♛⑩
上井葉心 说: 233别这样。你不觉得有了这个,安卓,苹果客户端功能就会很强大吗(口胡
不过每次改版就麻烦了
#5 - 2015-8-16 10:59
这个是 formHash,请求页面上的 form 里有个隐藏字段包含了这个值
每个值的有效期只有一次请求,如果你要自己做一个模拟请求的客户端的话,可以一直访问某个页面然后从返回的 html 里解析出 formHash 来
比较通用的是请求 /pm/compose.chii 这个页面,因为比较小,具体的代码可以这样(C#)
#5-1 - 2015-8-16 11:39
AWSL
多谢指导,原来有/pm/compose.chii这个地址返回的数据比较小。不过这个值似乎是一个不变的常值的样子?删除标记作品,发帖之类的,url最后面附带的这个值都是同一个。但会随着重新登录而改变
#5-2 - 2015-8-16 11:43
CMK
好厉害
#5-3 - 2015-8-16 11:53
Simon Chan
上井葉心 说: 多谢指导,原来有/pm/compose.chii这个地址返回的数据比较小。不过这个值似乎是一个不变的常值的样子?删除标记作品,发帖之类的,url最后面附带的这个值都是同一个。但会随着重新登录而改变
我记得有的请求重复发同一个 formHash 是会 403 的,应该是有什么变化的
#6 - 2015-8-16 11:01
(あなたの傷は私の食べ物)
审查元素 ctrl + f,其实就是一个隐藏的input
#7 - 2015-8-16 11:50
你这样和网页版区别不大啊(bgm39)
#8 - 2015-8-16 12:12
说起来在我玩了几次之后sai大基本上把大多数地方的坑都填上了呢,辛苦了
虽然找到了一个小地方没有加那个东西,不过看过去并不是什么大问题……
#8-1 - 2015-8-16 13:06
Sai🖖
快偷偷告诉我是哪……
#8-2 - 2015-8-16 13:22
dhzy
Sai 说: 快偷偷告诉我是哪……
(bgm39)
#8-3 - 2015-8-16 14:07
ks.magi
Sai 说: 快偷偷告诉我是哪……
(bgm38)
#8-4 - 2015-8-17 03:09
谷米
Sai 说: 快偷偷告诉我是哪……
。。。
#8-5 - 2015-8-17 03:33
铃猫
Sai 说: 快偷偷告诉我是哪……
(bgm38)
#8-6 - 2015-8-23 18:00
upsuper
Sai 说: 快偷偷告诉我是哪……
说来翻了下似乎还没修?
#8-7 - 2015-8-23 18:08
Sai🖖
upsuper ‏ 说: 说来翻了下似乎还没修?
忙啊
#8-8 - 2015-8-23 18:36
upsuper
Sai 说: 忙啊
嘛没事反正基本也是没什么用的东西(