python 爬虫求助

2015-06-27 21:30:15 +08:00
 wudaown

想用python写一个yunfile的下载器.. 或者叫爬虫?
思路挺简单的.. 下载链接分析转页目前到了验证码的一部分..
已经把验证码下载下来了..
chrome f12里面就什么都没有了..
就是输入完验证码之后点击进入下载.. 然后什么都没有!!!30秒过了还是什么都没有!!
完全不知道下一步该怎么办了...

代码如下

https://gist.github.com/wudaown/89256fadba79236ec68f

8412 次点击
所在节点    Python
62 条回复
wudaown
2015-06-27 21:32:57 +08:00
https://gist.github.com/wudaown/89256fadba79236ec68f

为什么在上面不能发代码.... 什么鬼....
em70
2015-06-27 21:56:08 +08:00
说明验证码错误了吧,人家系统知道你在破解,不给你返回任何错误信息
wudaown
2015-06-27 22:01:25 +08:00
@em70 不科学.. 我用浏览器正常操作没有然后在develop tools里面有看到任何返回.. 你没明白我的意思么.........
crab
2015-06-27 22:41:12 +08:00
时间到这个js redirectDownPage() 控制跳转的
wudaown
2015-06-27 22:48:10 +08:00
@crab 我也是看到这段才开始怀疑js的.. 然后我就不知道该怎么继续下去了... 还有就是输入框也没有找到..
crab
2015-06-27 23:39:21 +08:00
@wudaown 我不懂 Python 。
刚才试了下流程,就是先请求下文件下载页面,获取 fileid,再请求 验证码。
输入验证码后,延迟30秒,再请求文件调整页面链接。这个链接要自己构造
比如你代码提供的就是这个: http://p1.yunfile.com/file/down/wushangzhikong/3a40b126/0105.html
3a40b126 是 fileid
0105 是验证码
请求过去后返回的数据匹配下:form.setAttribute("action",saveCdnUrl+"这边就是文件下载真实地址");
crab
2015-06-27 23:43:15 +08:00
上面那个匹配是保存的。下载文件是一个 POST。
<form style="width:1060px;" class="tform" id="d_down_from
module:fileService
action:downfile
userId:wushangzhikong
fileId:3a40b126
vid:86d11777
vid1:a11ded7c93db2928
md5:b28f5d1212a83443229f8df8993bee34
wudaown
2015-06-27 23:44:08 +08:00
@crab 感谢~ 流程我看了下页面源码也 明白了 .. 现在去学一些js ... 现学现做..
wudaown
2015-06-27 23:45:02 +08:00
@crab 这里vid和vid1是指向什么没看出来.. 构造链接看明白了
crab
2015-06-27 23:48:25 +08:00
@wudaown 跳转过去的那个页面有这2个参数的值,vid 是 vericode 这个,vid1 都直接在 form 了
wudaown
2015-06-27 23:51:12 +08:00
@crab 具体是那个js文件呢.. 完全不了解 现在一头雾水了..
crab
2015-06-27 23:54:05 +08:00
@wudaown 不是在js啊。如果你 fileid 和 验证码 都对,30秒后请求这2参数构成的 URL,页面得到的数据就包含上面那些参数了啊。
wudaown
2015-06-27 23:55:03 +08:00
@crab 那不是不需要js .. 只要post一次验证码和fileid就可以等返回 然后在请求一下构成的url?
crab
2015-06-27 23:56:59 +08:00
@wudaown 我测试是 get 一次下载页面先,再get 一次验证码,get 一次 file&验证码.html ,最后 post 下载。
wudaown
2015-06-28 00:00:56 +08:00
@crab get验证码和id 可是像哪里post这两个?
crab
2015-06-28 00:06:56 +08:00
@wudaown 延迟30秒后,访问 get 一次 file&验证码.html,这个页面里面的源码,有个 POST 就是下载那个按钮的。你直接 POST 这边,参数也这个页面提取。
wudaown
2015-06-28 00:09:33 +08:00
@crab 方便用我代码里的链接给我看一下那个按钮的post嘛.. 没找到........
crab
2015-06-28 00:15:24 +08:00
@wudaown
javascript:{ck();document.getElementById('hidebtn').click();}
搜索:hidebtn
http://img-storage.qiniudn.com/15-6-28/76058268.jpg
wudaown
2015-06-28 00:18:40 +08:00
@crab 非常感谢.. 这些够我研究一晚了~ ~~
berry10086
2015-06-28 00:30:29 +08:00
我只想说,为什么不用requests

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.fyfyfm.apispeedy.workers.dev/t/201623

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX