黑马程序员技术交流社区
标题:
小型网页爬虫的一些疑问!
[打印本页]
作者:
刘芮铭
时间:
2012-8-28 22:55
标题:
小型网页爬虫的一些疑问!
用正则表达式编写一个小型的网页爬虫基本上还是可以理解的!
但是发现一个小小的疑问。如下:
import java.io.*;
import java.util.regex.*;
import java.net.*;
import java.util.*;
class RegexTest2
{
public static void main(String[] args) throws Exception
{
getMails();
}
public static void getMails_1()throws Exception
{
URL url = new URL("
http://192.168.1.254:8080/myweb/mail.html
");
URLConnection conn = url.openConnection();
BufferedReader bufIn = new BufferedReader(new InputStreamReader(conn.getInputStream()));
String line = null;
String mailreg = "
\\w+@\\w+(\\.\\w
+)+";
Pattern p = Pattern.compile(mailreg);
while((line=bufIn.readLine())!=null)
//每次只读一行,感觉就没办法解决2行各出现一部分的邮件地址问题!
{
Matcher m = p.matcher(line);
while(m.find())
{
System.out.println(m.group());
}
}
}
爬一个网页是没问题的,但是一切编程都需要结合现实的实例来说,在毕老的视频里面是自己编写的一个网页,
每行都有一个到多个完整的邮件地址,如下:
skdajfl>
abc1@sina.com
<ksadjflkdjfsa;lkdfjksa;ljfs;alfjsa;lkjfsa;lkfjska;ljfsafsd
skdajflksadjflkdjfsa;lkdfjksa;ljfs;alfjsa;lkjfsa;lkfjska;ljfsafsd
skdajfl>
abc2@sina.com
<sadjflkdjfsa;lkdfjks
>
abc3@sina.com
<a;ljfs;alfjsa;lkjfsa
;
但结合显示来讲,不可能每行都是完整的邮件的地址,完全可以出现以下状况:2行各出现邮件地址的一部分,请问怎么能爬出这种地址?
skdajflksadjflk>
abc0@sina.com
<djfsa;lkdfjksa;ljfs;alfjsa;lkjfsa;lkfjska;ljfsafsd;
xyz
@123.com
skdajflksadjflkdjfsa;lkdfjksa;ljfs;alfjsa;lkjfsa;
abcd@
.com
skdajflksadjflkdjfsa;lkdfjksa;ljfs;alfjsa;lkjfsa;lkfjska;ljfsafsd
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2