java编写爬虫

以 Jsoup  为例子

参照文档或者其他网上代码 

首先:进入一个网站  一级域名  

根据你要获取的内容特点 分析 网站结构 ,如 我要获取 新闻 

那么 首先获取新闻列表  ,一个个的 a标签 ,根据特点  获取到 a标签集合 

然后 重复上面的工作 ,将每一个a标签的href获取到 ,与一级域名拼接在一起 ,组成子页面的跳转路径

然后获取每一个子页面的document ,然后 在分析 内容的结构 ,包括图片的img 有什么class   id   可供锁定

这样,进一步就能获取到子页面的内容,图片等。然后 将获取到的内容 封装到自己的实体类,插入数据库就可以了

当然,可以在此指定参数 ,进行过滤 

 

关键就是要分析你要爬取的网站内容 在该网站页面的特点  结构   ,尽量找稳定的特点  便于长期爬取,如果你对前端比较熟悉,会发现  很多类似的地方  如获取标签 跟 java script类似



/**
 * java实现爬虫  自己导包
 */
public class Robot {
    public static void main(String[] args) {
        String url = "http://news.baidu.com/";//百度新闻
        try {
            Document doc = Jsoup.connect(url).get();//连接方式可以是.get() 或者.post()
            Elements results = new Elements();//获取页面元素
            results = doc.getElementsByTag("a");//我要的是新闻 所以  根据页面分析 主要是a标签
            Listtitles=new ArrayList();//这里放标题  模拟实体类的标题字段
            Listurls=new ArrayList();//这里放标题  模拟实体类的连接字段
            for (int i = 0; i < results.size(); i++) {
               Element element= results.get(i);
                System.out.println(element);//可以看到我爬到的a标签
                //必要的筛选
                String href = element.attr("href");//a标签的url
                String title = element.text();//a标签的内容  也就是标题
                    titles.add(title);
                urls.add(url+href);
            }
           //下面  理论上我们的实体类就有了标题   爬取地址
            //但是 ,我们需要展示里面的内容   接下来  继续重复 上面的工作
            Listcontents=new ArrayList();//模拟实体类中的内容字段
            for (int i = 0; i 

 

你可能感兴趣的:(爬虫java)