autojs使用jsoup的demo

// 作者QQ   203118908
// 时间     2019 1 8
// 脚本作用: autojs使用jsoup的demo
// 脚本内容: 爬取科学网  刘玉仙 博客的  指定id的好友名字
// 需要导入jsoup.
// jsoupDemo.js
console.show()
runtime.loadJar('/sdcard/jsoup.jar')
importClass("org.jsoup.Jsoup")
importClass("java.io.IOException")
importClass("java.util.HashMap")
importClass("org.jsoup.Jsoup")
importClass("org.jsoup.nodes.Document")
importClass("org.jsoup.nodes.Element")
importClass("org.jsoup.select.Elements")

function Spider(url) {
  this.CrawlName = function (url) {
    var tmp = new HashMap();
    try {
      var doc = Jsoup.connect(url)
        .header("User-Agent",
          "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36")
        .get();
      var links = doc.select("dt a");
      links = links.toArray()
      for (let i = 0; i < links.length; i++) {
        var link = links[i]
        if (link.hasAttr("style")) {
          tmp.put(parseInt(link.attr("href").substring(link.attr("href").indexOf("uid=") + 4)), link.attr("title"));
        }
      }
      log(tmp)
      return (tmp);
    } catch (e) {
      log(e)
    }
    return (null);
  }
  var data = this.CrawlName(url);
  this.getName = function (id) {
    if (data != null) {
      log('id: %d - name: %s', id, data.get(id));
    }
  }
}
s = new Spider("http://blog.sciencenet.cn/home.php?mod=space&uid=215715&do=friend&view=me&from=space");
s.getName(71079);

最后由 jiajia123 编辑
// 这是某位网友提出的问题
// 一楼的代码是用下面的java代码改的



// 题目:使用jsoup解析科学网刘玉山的博客好友(http://blog.sciencenet.cn/home.php?mod=space&uid=215715&do=friend&view=me&from=space)名单(id和姓名)。试试:
// a.在控制台直接输出;
// b.先将id和姓名存储到HashMap当中,查询某一个id是否存在,输出其id和姓名。
// 我查看了网页的源代码,好多也看不懂,也看了Jsoup的使用手册,但是感觉还是比较懵逼。。求赐教!!!
package com.spider;
import java.io.IOException;
import java.util.HashMap;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class Spider {
	private HashMap<Integer, String> data;
	public Spider( String url )
	{
		data = this.CrawName( url );
	}
	public HashMap<Integer, String> CrawName( String url )
	{
		HashMap<Integer, String> tmp = new HashMap<>();
		try {
			Document doc = Jsoup.connect( url )
				       .header( "User-Agent",
						"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36" )
				       .get();
/**
 * <dt>
 * <a href="http://blog.sciencenet.cn/home.php?mod=space&amp;uid=79300" title="刘艳红" target="_blank" style="color:       ;">
 *                  刘艳红                </a>
 * </dt>
 */
			Elements links = doc.select( "dt a" );
			for ( Element link : links )
			{
				if ( !link.attr( "style" ).isEmpty() )
				{
					tmp.put( Integer.parseInt( link.attr( "href" ).substring( link.attr( "href" ).indexOf( "uid=" ) + 4 ) ), link.attr( "title" ) );
				}
			}
			return(tmp);
		} catch ( IOException e ) {
			e.printStackTrace();
		}
		return(null);
	}
	public void getName( int id )
	{
		if ( data != null )
		{
			System.out.println( data.get( id ) );
		}
	}
	public static void main( String[] args )
	{
		Spider s = new Spider( "http://blog.sciencenet.cn/home.php?mod=space&uid=215715&do=friend&view=me&from=space" );
		s.getName( 79300 );
	}
}
  • 2
    帖子
  • 857
    浏览

与 Auto.js 的连接断开,我们正在尝试重连,请耐心等待