【学习笔记】webmagic ------eclipse模拟登录爬虫

本文章主要是针对一些需要登录才能爬去取所需数据的一个小demo

方法一(很麻烦的方法):通过获取cookie值登录并爬虫
(这里爬取CSDN)
图片上方“管理博客”这一按钮只有登录后才出现,现在通过代码模拟登录并爬去
这里写图片描述
登录CSDN后在界面右击——>检查出现下图:

【学习笔记】webmagic ------eclipse模拟登录爬虫_第1张图片
代码:

package linll.cn.PageProcessor.Maven;

import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;

public class CsdnLoginCookie implements PageProcessor{
    private  Site site = Site.me()
            .setDomain("blog.csdn.net")
            .setSleepTime(300)
            .setRetrySleepTime(3)
            .addCookie("ADHOC_MEMBERSHIP_CLIENT_ID1.0", "82051d22-d80f-8af7-b2bb-cf39237d46dd")
            .addCookie("AU", "7FD")
            .addCookie("BT", "1533008074497")
            .addCookie("Hm_lpvt_6bcd52f51e9b3dce32bec4a3997715ac", "1533008085")
            .addCookie("Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac", "1533002102,1533003262,1533006261,1533006944")

            .
            .
            .
            .
            .
             .addCookie("uuid_tt_dd", "10_9937913540-1531713690977-721111");

             @Override
    public void process(Page page) {
        // TODO Auto-generated method stub
        System.out.println(page.getHtml().xpath("//div[@class='opt-box d-flex justify-content-end']/a[2]/text()").toString());

    }

    @Override
    public Site getSite() {
        // TODO Auto-generated method stub
        return site;
    }
    public static void main(String[] args) {
        Spider.create(new CsdnLoginCookie()).addUrl("https://blog.csdn.net/weixin_42162388").thread(5).run();
    }

}

因为要爬取得内容需要登录才能获取,下面两张图验证下没有获取cookie和获取cookie之后的对比:
没有获取cookie(爬取内容为null):
【学习笔记】webmagic ------eclipse模拟登录爬虫_第2张图片
运行上面代码获取cookie后:
【学习笔记】webmagic ------eclipse模拟登录爬虫_第3张图片

后面文章会介绍通过Selenium模拟chrome浏览器爬取到登录后才能爬取到的数据

你可能感兴趣的:(程序)