java获取微信公总号推送的所有信息的url,用于爬取微信推送的文章内容

场景描述:

    在用户提出需要爬取微信公总号推送消息的时候,感觉是懵逼的,之前从来没爬取过,无从下手,没办法顾客是上帝,既然用户提出了需求,我们只能想法去解决问题。

    然后根据用户提供微信公总号  安泰科现货报价 去爬取,发现公总号推送的消息的url并不是固定不变的,这咋整。好在对于我们开发人员来说有度娘,ok,百度一下,发现搜狗微信能解决该问题。写了一个测试发现,果然能解决,之后就有了这篇博文,用来记录,免得忘记,也多少能给大家一些参考,废话不多说,言归正传:

首先需要jsoup的jar包,我用的1.10.2版本。

		<!-- jsoup -->
		<dependency>
		    <groupId>org.jsoup</groupId>
		    <artifactId>jsoup</artifactId>
		    <version>1.10.2</version>
		</dependency>

然后是测试类的代码,简单的注释已经写上,如下

package crawler;

import java.io.IOException;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.junit.Test;

/**
 * 微信公总号测试类
 * @author siqiangming 2018年5月9日 上午9:59:18
 */
public class WeChatTest{
	@Test
	public void getFirst(){
		String baseUrl = "http://weixin.sogou.com/weixin?type=1&ie=utf8&query=";//搜狗微信的基础地址
    	String searchUrl = baseUrl + "gh_3756da4d163e";//加上安泰科现货价格的微信公总号
    	Document document = getDocument(searchUrl);
    	String listUrl = document.select(".tit a").attr("href");//查询到所有列表信息的url
    	System.out.println(listUrl);
    	System.out.println("-----------------------");
    	Document doc = getDocument(listUrl);
    	//截取前10条推送信息的json中的list数据
    	String jsonList = doc.html().split("var msgList = ")[1].split("seajs.use")[0].trim();
    	//截取出来第一条信息的url
    	String url = jsonList.split("content_url\":\"")[1].split("\",\"copyright_stat")[0].replaceAll("amp;", "");
    	if(url.startsWith("/s")){//如果url以/s开头,处理成http格式
    		url = "http://mp.weixin.qq.com" + url;
    	}
    	System.out.println(url);
    	//获取第一条推送信息的标题
    	String title = jsonList.split("title\":\"")[1].split("\"},\"comm_msg_info")[0];
    	System.out.println(title);
	}
	
	/**
	 * 获取页面
	 * @author siqiangming 2018年5月9日 下午2:23:01
	 * @param url url
	 * @return
	 */
	public Document getDocument(String url){
		Document document = null;
		try {
			document = Jsoup.connect(url).get();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return document;
	}
}
ok,url已经获取到,剩下的爬取的就省略了。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值