j网络爬虫之WebMagic

本文介绍了如何使用WebMagic框架进行POST请求爬取网页,并提供了两种请求参数方式:form表单和JSON格式。通过具体示例代码展示了从创建请求到处理响应的完整流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WebMagic官网:http://webmagic.io/

注意:

1、在自定义PageProcessor中使用System.out.println(“str”),Spider.create(new myPageProcessor()).start()爬虫启动后,console并不会输出

spider.addPipeline(new ConsolePipeline())//在控制台上输出

 

webMagic之post请求 

请求参数为form

	@Test
	public void webMagicTest1() {
		String str = "一人之下";
		Map<String,Object> map  = new HashMap<String,Object>();
		map.put("keyword", str);
		Request request = new Request("https://www.80s.tw/search");
		request.setMethod(HttpConstant.Method.POST);
		request.setRequestBody(HttpRequestBody.form(map, "utf-8"));
		Spider.create(new webMagic1())
				.addRequest(request)
				.addPipeline(new JsonFilePipeline("D:\\webmagic\\"))
				.addPipeline(new ConsolePipeline())
				.run();
	}

  请求参数为json

	@Test
	public void webMagicTest1() {
		String name = "一人之下";
		JSONObject json = new JSONObject();
		json.put("keyword", name);
		Request request = new Request("https://www.80s.tw/search");
		request.setMethod(HttpConstant.Method.POST);
		request.setRequestBody(HttpRequestBody.json(json.toString(), "utf-8"));
		Spider.create(new webMagic1())
				.addRequest(request)
				.addPipeline(new JsonFilePipeline("D:\\webmagic\\"))
				.addPipeline(new ConsolePipeline())
				.run();
	}

  

 

转载于:https://www.cnblogs.com/zhumengke/p/8868257.html

SeimiCrawler An agile,powerful,distributed crawler framework. SeimiCrawler的目标是成为Java世界最好用最实用的爬虫框架。简介      SeimiCrawler是一个敏捷的,支持分布式的Java爬虫开发框架,希望能在最大程度上降低新手开发一个可用性高且性能不差的爬虫系统的门槛,以及提升开发爬虫系统的开发效率。在SeimiCrawler的世界里,绝大多数人只需关心去写抓取的业务逻辑就够了,其余的Seimi帮你搞定。设计思想上SeimiCrawler受Python的爬虫框架Scrapy启发很大,同时融合了Java语言本身特点与Spring的特性,并希望在国内更方便且普遍的使用更有效率的XPath解析HTML,所以SeimiCrawler默认的HTML解析器是JsoupXpath,默认解析提取HTML数据工作均使用XPath来完成(当然,数据处理亦可以自行选择其他解析器)。 原理示例基本原理集群原理快速开始 添加maven依赖(已经同步到中央maven库,最新版本参见项目主页):     cn.wanghaomiao     SeimiCrawler     0.1.0 在包crawlers下添加爬虫规则,例如:@Crawler(name = "basic") public class Basic extends BaseSeimiCrawler {     @Override     public String[] startUrls() {         return new String[]{"http://www.cnblogs.com/"};     }     @Override     public void start(Response response) {         JXDocument doc = response.document();         try {             List<Object> urls = doc.sel("//a[@class='titlelnk']/@href");             logger.info("{}", urls.size());             for (Object s:urls){                 push(new Request(s.toString(),"getTitle"));             }         } catch (Exception e) {             e.printStackTrace();         }     }     public void getTitle(Response response){         JXDocument doc = response.document();         try {             logger.info("url:{} {}", response.getUrl(), doc.sel("//h1[@class='postTitle']/a/text()|//a[@id='cb_post_title_url']/text()"));             //do something         } catch (Exception e) {             e.printStackTrace();         }     } } 然后随便某个包下添加启动Main函数,启动SeimiCrawler:public class Boot {     public static void main(String[] args){         Seimi s = new Seimi();         s.start("basic");     } } 以上便是一个最简单的爬虫系统开发流程。 更多文档      目前可以参考demo工程中的样例,基本包含了主要的特性用法。更为细致的文档移步SeimiCrawler主页中进一步查看 标签:爬虫
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值