使用webmagic爬取网页信息以及通过selenium进行页面元素操作

作者专注于Java、架构、Linux、小程序、爬虫、自动化等技术。 工作期间含泪整理出一些资料,微信搜索【程序员高手之路】,回复 【java】【黑客】【爬虫】【小程序】【面试】等关键字免费获取资料。技术交流、项目合作可私聊。 

目录

前言

所用技术

1.webmagic

2.selenium


前言

网上的爬虫、自动化一般都是使用python来做的;

身为java程序员,当然要不甘示弱!

所以就写了java爬虫、自动化系列文章,供众多java程序员参考!

首先看一下自动化操作百度首页的图像,模拟输入、点击事件(源码地址:做自动化必备工作以及hello world代码):

所用技术

1.webmagic

添加需要爬取的url

Spider.create(new MyProcessor()).addUrl("https://www.cnblogs.com/").thread(5).run();

在process里面抓取符合条件的内容 

 public void process(Page page) {
        //判断链接是否符合http://www.cnblogs.com/任意个数字字母-/p/7个数字.html格式
        if(!page.getUrl().regex("http://www.cnblogs.com/[a-z 0-9 -]+/p/[0-9]{7}.html").match()){
           //加入满足条件的链接
            page.addTargetRequests(
                    page.getHtml().xpath("//*[@id=\"post_list\"]/div/div[@class='post_item_body']/h3/a/@href").all());

        }else{
            *[@id="post_list"]/div[5]/div[2]/h3/a
            //获取页面需要的内容
            System.out.println("抓取的内容:"+
                    page.getHtml().xpath("//*[@id=\"Header1_HeaderTitle\"]/text()").get()
            );
            count ++;
        }
    }

2.selenium

以今日头条为例对页面元素(“关注”按钮)进行点击

设置驱动

System.setProperty("webdriver.chrome.driver", "CHROMEPATH/chromedriver.exe");
        

初始化driver

WebDriver driver = new ChromeDriver();

进入页面

driver.get("https://www.toutiao.com/c/user/relation/4492956276/?tab=followed#mid=4492956276");

 获取所需元素

WebElement submit = li.findElement(By.cssSelector(".submit"));

 点击

submit.click();

作者专注于Java、架构、Linux、小程序、爬虫、自动化等技术。 工作期间含泪整理出一些资料,微信搜索【程序员高手之路】,回复 【java】【黑客】【爬虫】【小程序】【面试】等关键字免费获取资料。技术交流、项目合作可私聊。

JAVA selenium 设置ip代理池: 1. 首先需要下载selenium webdriver,可以在官网下载,或者使用maven仓库下载。 2. 下载好webdriver后,需要下载对应浏览器的driver,比如Chrome浏览器需要下载chromedriver。 3. 在代码中设置代理池,可以使用第三方库ProxyPool,具体使用方法可以参考官方文档。 4. 在使用selenium webdriver时,需要设置代理,可以通过以下代码实现: ```java ChromeOptions options = new ChromeOptions(); options.addArguments("--proxy-server=http://ip:port"); WebDriver driver = new ChromeDriver(options); ``` 其中,ip和port需要替换成代理池中的ip和端口。 webmagic爬取网页数据: 1. 首先需要下载webmagic库,可以在maven仓库中下载。 2. 创建一个Java类,并继承PageProcessor类,实现其中的方法,如下所示: ```java public class ExamplePageProcessor implements PageProcessor { private Site site = Site.me().setRetryTimes(3).setSleepTime(1000); @Override public void process(Page page) { // 解析页面数据 page.putField("title", page.getHtml().xpath("//title").toString()); page.putField("content", page.getHtml().xpath("//div[@class='content']").toString()); // 添加要爬取的url page.addTargetRequests(page.getHtml().links().regex("(https://www\\.example\\.com/[\\w\\-]+)").all()); } @Override public Site getSite() { return site; } } ``` 3. 在main方法中,创建一个Spider对象,并设置要爬取的url和PageProcessor,如下所示: ```java public static void main(String[] args) { Spider.create(new ExamplePageProcessor()) .addUrl("https://www.example.com") .run(); } ``` 4. 运行程序,爬取数据。数据会保存在Page对象中,可以通过page.putField()方法保存。可以通过page.getTargetRequests()方法获取要爬取的url,可以通过page.getResultItems()方法获取保存的数据。
评论 331
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前方一片光明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值