(HttpClient技術)(58同城系列)58同城發帖

58同城的登陸和加密,都已經被我破解了,那其實目的就一目瞭然了,是的,目的就是58同城的模擬發帖。

爲了寫這個發帖機,我是煞費苦心,百度和谷歌,到處搜索資料,結果,一無所獲,是的,真的是一無所獲,基本上,所有的搜索,都找不到相關資料,我無語了,這是咋回事呢,難道58同城做了封殺,把所有的資料,都封殺了,爲此,我忐忑不安,寫文章之前,我還在想,我寫了這個文章,是不是也會立刻被封殺呢。。。

不過想再多,發還是要發的,分享一下我的經驗給大家,就給58同城開個刀吧

58同城的登陸成功了,那麼發帖就很容易了,其實,不然,發帖纔是真正有難度的,寫發帖,建議,必須使用httpclient 4以上版本,難度小一些,3的版本,難度有點大,很是不建議

首先,模擬進入發帖頁面,這些我就不詳細累贅了,

從發帖開始,開始發帖,首先注意到了,Content-Type,這個字段是一個multipart/form-data; ,一萬匹馬從我的腦海中飛過啊,這個東西,httpclient3的版本,兼容的不好,只有的4裏面,有兼容,下面我吧兼容的代碼貼出來,供大家參考一下:

4裏面可以使用MultipartEntity,模擬multipart/form-data;

MultipartEntity mutiEntity = new MultipartEntity();

MultipartEntity mutiEntity = new MultipartEntity();
mutiEntity.addPart("daizhaogongsiID",new StringBody("", Charset.forName("utf-8")));
mutiEntity.addPart("parentuid",new StringBody(userid, Charset.forName("utf-8")));
mutiEntity.addPart("childuserid",new StringBody(userid, Charset.forName("utf-8")));
mutiEntity.addPart("fulibaozhang",new StringBody("1|8|6|9|2|7", Charset.forName("utf-8")));
g3.setEntity(mutiEntity);
HttpResponse httpResponse = httpClient.execute(g3);
HttpEntity httpEntity = httpResponse.getEntity();
String sg3 = EntityUtils.toString(httpEntity)

好的,這個難關過了,那麼可以開始發送了

開始,連續3天,都出現這個錯誤,無法成功:

document.domain='58.com'; parent.$.formValidator.subfalse('aspnetForm', 'fabu'); parent.$.c.user.loginsuccess_callback('25393157009927');parent.$('#frmPassport').closest('tr').remove();parent.$.xxzl.cptr.destroy();parent.$.xxzl.cptr.init('3b0e29dae7bb0020f6b0a2d709a3acd34f');

這個錯誤,看的出來,其實,是已經發到服務器了,但是某個參數出錯了,仔細研究了一下,才發現,原來是這個參數引起的,

經過一星期的奮戰,終於,完全通過了58的發帖機制,太不容易了,有啥問題,大家聯繫我哈,嘿嘿



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章