说一下webMagic我所出现的问题吧, 我是因为连了公司的内网所以导致无法去解析页面, 因为像在webMagic中你去使用它解析页面是必需得要代理的, 我之前就主要是没有考虑这个问题,下面我附上解决代码:
package ai.zerox.proxy;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Task;
import us.codecraft.webmagic.proxy.Proxy;
import us.codecraft.webmagic.proxy.ProxyProvider;
/**
* @description 配置代理去下载页面
* @author AiShuangPeng
* @date 2023/7/19 10:38
*/
public class CustomProxyProvider implements ProxyProvider {
@Override
public void returnProxy(Proxy proxy, Page page, Task task) {
}
@Override
public Proxy getProxy(Task task) {
// 在这里从代理IP池中获取代理IP
String host = "填写公司内网ip";
int port = 填写端口号;
return new Proxy(host, port);
}
}
package ai.zerox.proxy;
import us.codecraft.webmagic.downloader.HttpClientDownloader;
public class CustomDownloader extends HttpClientDownloader {
public CustomDownloader() {
this.setProxyProvider(new CustomProxyProvider());
}
}
package ai.zerox.crawlers;
import ai.zerox.proxy.CustomDownloader;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.pipeline.Pipeline;
import us.codecraft.webmagic.processor.PageProcessor;
import us.codecraft.webmagic.scheduler.Scheduler;
/**
* @author AiShuangPeng
* @version 1.0
* @description 初始化爬虫
* @date 2023/7/19 20:01
*/
@Component
public class InfoSpider {
@Autowired
private PageProcessor processor;
@Autowired
private Pipeline pipeline;
@Autowired
private Scheduler scheduler;
//爬取地址
private final String URL = "http://*****************/index.html"; //填写自己需要爬取的地址即可
/**
* @description 该方法调用时将会调用多个组件并启动爬虫进行数据爬取
* @author AiShuangPeng
* @date 2023/7/19 8:34
*/
public void doCrawler() {
Spider.create(processor)
//设置自定义得pipeline
.addPipeline(pipeline)
//配置scheduler 指定使用布隆过滤器
.setScheduler(scheduler)
//设置起始url
.addUrl(URL)
//配置代理(当用的是公司内网时需要去配置)
.setDownloader(new CustomDownloader())
//启动爬虫
.start();
}
}
pac

本文介绍了如何在使用WebMagic爬虫框架时,解决因连接公司内网导致无法解析网页的问题。通过创建自定义的代理提供器(CustomProxyProvider)和下载器(CustomDownloader),并结合BloomFilterDuplicateRemover进行去重,实现了在内网环境下的网页抓取。此外,还展示了如何配置PageProcessor、Pipeline和Scheduler来处理页面内容和数据持久化。
最低0.47元/天 解锁文章
2887

被折叠的 条评论
为什么被折叠?



