爬虫爬网站时,遇到有些网站会有javascript进行cookie认证,有什么好办法能处理吗??

2013-08-08 16:40:05 +08:00
 lewisc402
5827 次点击
所在节点    Python
15 条回复
lewisc402
2013-08-08 16:45:46 +08:00
假设我想访问 a.html,结果服务器会重定向到 redirect.html?url=a.html,而redirect.html中是一些javascript代码,用来写cookie,那么我该怎么办才能访问到原网页呢? 求思路???
binux
2013-08-08 16:54:13 +08:00
@lewisc402 手动提出来
lewisc402
2013-08-08 16:56:35 +08:00
@binux 没理解?? 能详细说下吗
DearMark
2013-08-08 17:03:29 +08:00
我也表示非常关注!
binux
2013-08-08 17:07:17 +08:00
@lewisc402 打开redirect.html,解析js代码,提出js写入的cookie
pubby
2013-08-08 17:10:30 +08:00
分析出来然后在爬虫中模拟
pandada8
2013-08-08 18:11:34 +08:00
如果客户端的js用了某种算法的生成数据可以考虑在脚本中模拟一下算法,生成数据
或者直接使用 Headless 的框架 Zombie.js,Ghost.py,或者直接操作 selenium ……
pubby
2013-08-08 18:22:00 +08:00
@pandada8 同意,如果算法太复杂,可以直接把js代码丢给node.js跑出结果再用
pandada8
2013-08-08 18:30:27 +08:00
参见 http://obmem.info/?p=848 别人写的……
pythoner
2013-08-08 18:34:45 +08:00
@pandada8 擦,看到我同事的博客了~~
RelativeLayout
2013-08-08 18:38:06 +08:00
casperjs 或者 phantomjs
pandada8
2013-08-08 18:59:16 +08:00
@pythoner - =以前SimpleCD出来的时候关注的……
yuan
2013-08-08 19:33:46 +08:00
使用现有的cookie:

Chrome 的 cookietxt-export 扩展( https://chrome.google.com/webstore/detail/cookietxt-export/lopabhfecdfhgogdbojmaicoicjekelh )可以将cookie导出为 wget 可识别的格式。安装好该插件后,登录需要抓取的网站,点击插件按钮,就可以导出为 Netscape 的 cookies.txt 格式。

如果使用 Ruby ,可以用

agent = Mechanize.new
agent.cookie_jar.load(cookies_txt_file, :cookiestxt)

Python 应该有类似的工具吧
lewisc402
2013-08-08 22:14:29 +08:00
@yuan 这个方法看起来不错,先尝试下
soho176
2013-08-08 22:20:59 +08:00
@pandada8 这个博客 我以前也看 后来找不到地址了哈

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

https://www.v2ex.com/t/78450

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

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

© 2021 V2EX