黑马程序员技术交流社区
标题:
技术分超过25分的用户
[打印本页]
作者:
汪洋大海
时间:
2013-12-3 21:27
标题:
技术分超过25分的用户
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 爬一下黑马的用户。
* 技术分超过25的
* 存入文件中。
* 格式:姓名xxx UIDxxx 技术分xxx
*/
class Url
{
static String name = null;
public static void main(String[] args) throws Exception
{
BufferedWriter bw = new BufferedWriter(new FileWriter("f:\\io\\person.txt"));
for(int x=98200;x<100000;x++)
{
//创建连接。
URL url = new URL("http://bbs.itheima.com/space-uid-"+x+".html");
URLConnection ucc = url.openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(ucc.getInputStream(),"utf-8"));
//爬这一断代码"数字 </span>技术分"
//还爬一下这断代码"name">用户名<"
String line = null;
while ((line=br.readLine())!=null)
{
String regex = "\\d+ </span>技术分";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(line);
String regex2 = "name\">.+<";
Pattern p2 = Pattern.compile(regex2);
Matcher m2 = p2.matcher(line);
while (m2.find())
{
name = m2.group();
name = name.replace( "name\">","");
name = name.replace("<", "");
}
while (m.find())
{
//把数据存入文件中
String s= m.group();
String[] arr = s.split(" </span>");
if(Integer.parseInt(arr[0])>=25)
{
bw.write("姓名:"+name+"\t\tUID:"+x+"\t"+arr[1]+arr[0]);
bw.newLine();
bw.flush();
}
}
System.out.println(line);//测试时用的。看有没有连接到数据。
}
}
bw.close();
}
}
复制代码
作者:
doitforyou
时间:
2013-12-4 01:10
很不错啊 顶一个 呵呵 学习下
作者:
天ya~_琼楼
时间:
2013-12-4 11:52
很厉害呀!
作者:
ily521125
时间:
2013-12-4 13:03
学习了,非常赞!
作者:
Jim-剣◆﹏
时间:
2013-12-5 13:45
好像很很屌的样子哦{:soso_e113:}
作者:
zms2100
时间:
2013-12-5 13:58
受教了,是根据固定的用户UID号对应的页面来搜的是用户信息,不错,顶.............
自己还是要多学学搜索引擎的原理和相关知识,向爬虫前进,O(∩_∩)O~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2