- 1. WebMagic 概览
- 1.1 设计思想
- 1.2 总体架构
- 1.3 项目组成
- 2. 快速开始
- 2.1 使用Maven
- 2.2 不使用Maven
- 2.3 第一个爬虫项目
- 3. 下载和编译源码
- 3.1 下载源码
- 3.2 导入项目
- 3.3 编译和执行源码
- 4. 编写基本的爬虫
- 4.1 实现 PageProcessor
- 4.2 使用 Selectable 抽取元素
- 4.3 使用Pipeline保存结果
- 4.4 爬虫的配置、启动和终止
- 4.5 Jsoup与Xsoup
- 4.6 爬虫的监控
- 4.7 配置代理
- 4.8 处理非 HTTP GET 请求
- 5. 使用注解编写爬虫
- 5.1 编写Model类
- 5.2 TargetUrl与HelpUrl
- 5.3 使用ExtractBy进行抽取
- 5.4 在类上使用ExtractBy
- 5.5 结果的类型转换
- 5.6 一个完整的流程
- 5.7 AfterExtractor
- 6. 组件的使用和定制
- 6.1 使用和定制 Pipeline
- 6.2 使用和定制 Scheduler
- 6.3 使用和定制 Downloader
- 附录:实例分析
- 列表 + 详情的基本页面组合
- 抓取前端渲染的页面
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
4.8 处理非 HTTP GET 请求
一般来说,爬虫只会抓取信息展示类的页面,所以基本只会处理 HTTP GET 方法的数据。但是对于某些场景,模拟 POST 等方法也是需要的。
0.7.1 版本之后,废弃了老的 nameValuePair 的写法,采用在 Request 对象上添加 Method 和 requestBody
来实现。
Request request = new Request("http://xxx/path");
request.setMethod(HttpConstant.Method.POST);
request.setRequestBody(HttpRequestBody.json("{'id':1}","utf-8"));
HttpRequestBody 内置了几种初始化方式,支持最常见的表单提交、json 提交等方式。
API | 说明 |
---|---|
HttpRequestBody.form(Map\ params, String encoding) | 使用表单提交的方式 |
HttpRequestBody.json(String json, String encoding) | 使用 JSON 的方式,json 是序列化后的结果 |
HttpRequestBody.xml(String xml, String encoding) | 设置 xml 的方式,xml 是序列化后的结果 |
HttpRequestBody.custom(byte[] body, String contentType, String encoding) | 设置自定义的 requestBody |
POST 的去重:
从 0.7.1 版本开始,POST 默认不会去重,详情见: Issue 484 。如果想要去重可以自己继承 DuplicateRemovedScheduler
,重写 push
方法。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论