java使用HttpClient 4.x实现新浪微博的登录

2012-09-17 17:26:09 +08:00
 m_z
最近工作需要爬新浪微博的名人堂微博,先是用新浪提供的sdk做了一套,结果客户的网络环境是要用代理的,这样在调用sdk的时候会报错,报的错和一个网上的贴子基本一样:http://forum.open.weibo.com/read.php?tid=48600。就像这个帖子,到现在没有人说出解决方案。所以现在打算直接使用HttpClient 4.x爬。

希望有经验的说下登录的过程
6291 次点击
所在节点    Java
14 条回复
twm
2012-09-17 17:33:52 +08:00
不用新浪api不好弄吧
explon
2012-09-17 17:35:06 +08:00
不用 SDK 累死你
holmesabc
2012-09-17 17:58:45 +08:00
自己改一下SDK的源码不好一点
m_z
2012-09-17 23:40:35 +08:00
@twm 的确

@explon 同感

@holmesabc 有这样想过,只是sdk源码也是用的HttpClient实现的,对代理也是给HttpClient设置了代理。你是怎样的改源码的思路呢?
cooiky
2012-09-18 08:56:15 +08:00
oauth
sohoer
2012-09-18 09:04:14 +08:00
绑定登录后的COOKIE,应该就很简单了,
m_z
2012-09-18 09:33:58 +08:00
@sohoer 意思是拿到手动登录成功的cookie么?

@cooiky 什么思路呢?
cooiky
2012-09-18 14:23:09 +08:00
zoran
2012-09-18 23:26:17 +08:00
方法一 重写sdk里httpclient部分代码 老版的httpclient搞不定可以尝试使用httpcomponent替换
方法二 有点麻烦 抓多抓快了还会被封号封ip 一般是用wap版weibo.cn做入口 模拟登陆,然后设置拿到的cookie 一段时间内就不用在登陆。。开抓
m_z
2012-09-19 09:37:51 +08:00
@zoran 觉得方法一比较靠谱,谢谢~~
hetaoblog
2012-09-19 10:05:21 +08:00
调用sdk前设置下jvm代理
m_z
2012-09-19 10:08:18 +08:00
@hetaoblog 这是什么原理啊!?
hetaoblog
2012-09-19 10:26:32 +08:00
@m_z

http://docs.oracle.com/javase/6/docs/technotes/guides/net/proxies.html

简单的说,如果客户使用http代理,调用sdk前做如下设置应该可以
System.setProperty("http.proxyHost", "webcache.mydomain.com");
System.setPropery("http.proxyPort", "8080");
m_z
2012-09-19 22:24:22 +08:00
@hetaoblog 长见识了,谢谢!

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

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

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

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

© 2021 V2EX