webmagic爬取搜狗微信内容链接加密 处理

搜狗微信 对微信文章链接加密 如:http://weixin.sogou.com/websearch/art.jsp?sg=CBf80b2xkgbBEYG8ZrvLLP0NRdmwf69vD3LXfaSJV49EOwHSZruSx6h0dcQ_JujdVuosoRr1PYd-CzEHhPcj24SfFDvgwfBMSY-lMoJyP8B-aGdQoX7eok2sANIuMoHEeQLQTXirUf2jWITPRA1H3WH57fuM2F1D&url=p0OVDH8R4SHyUySb8E88hkJm8GF_McJfBfynRTbN8whv0EHaHtLYA4OuUSXH7U6wvaSdi8HPCD-qhngfZTDkY2Q3JxMQ3374z8p8lWtnV1p_-jlWGTXusAqtnref4O1MkdIr_DDIPF1Yy-5x5In7jJFmExjqCxhpkyjFvwP6PuGcQ64lGQ2ZDMuqxplQrsbk

对这个链接进行分析,就看出来搜狗对微信链接 进行一个转发跳转。

针对他的转发跳转我们可以有很多种方式进行破解,得到它最终的链接地址。

下面基于webmagic,针对转发跳转,丢入后Cookie得到它的最终链接地址。


/**

     * 应对sougouURL加密

     */

    private String getRedirectUrl(String path,String cookie) {

try {

// path = "http://weixin.sogou.com//websearch/art.jsp?sg=CBf80b2xkgYEKf30GukJ3-N9LuabaaL5jKZqSAEDyz2QCSNhlxghuVR6TILcrQO7khFHWgOmOwvvw0UbWKgNX58u1Myc2uKF59FRiiYGV9LmemuO8e_VQk1C3Gd3uql4bGn8xRly_aGnmjcR19BOgw..&url=p0OVDH8R4SHyUySb8E88hkJm8GF_McJfBfynRTbN8wioa8_QR5lQJr8lbtfFSGOlmWVGLlRM1FJ-a8rw183SxWQ3JxMQ3374GaxeVGtFW176hYVbqh7wxF0w5kr0fKKid3-VREhExfRYy-5x5In7jJFmExjqCxhpkyjFvwP6PuGcQ64lGQ2ZDMuqxplQrsbk";

HttpURLConnection conn = (HttpURLConnection) new URL(path).openConnection();

conn.setInstanceFollowRedirects(false);

conn.setConnectTimeout(200);

conn.addRequestProperty("Cookie",cookie);

String result = conn.getHeaderField("Location");

return result;

} catch (Exception e) {

return null;

}

    }

上面代码 是转换链接地址的代码。但同时提出个问题Cookie怎么拿呢? 这里我对webmagic里面的SeleniumDownloader中的download添加部分代码就能拿到Cookie。如下代码

Set<Cookie> cookies = manage.getCookies();

        StringBuffer str = new StringBuffer();

        for(Cookie cookie : cookies){

        str.append(cookie.getName()+"="+cookie.getValue()+";");

        }

        Map<String,Object> map = new HashMap<String, Object>();

        map.put("cookie",str.toString());

        request.setExtras(map);


你可能感兴趣的:(webmagic爬取搜狗微信内容链接加密 处理)