// 作者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);
autojs使用jsoup的demo
// 这是某位网友提出的问题
// 一楼的代码是用下面的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&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 );
}
}