nodejs爬虫,POST请求发送Request Playload格式数据

nodejs爬虫,POST请求发送Request Playload格式数据。

本文以网易云课堂其中2个POST请求为例,使用request模块实现。

例子1

1、地址:

http://study.163.com/dwr/call/plaincall/MongoAttributesBean.obtainByRandomWithLimitTime.dwr?1521595046314

2、请求截图


从上图可以看到"Content-Type"为"text/plain";数据发送方式:Request Payload,

数据就是普通换行的字符串,而不是JSON字符串。

3、nodejs代码

  let request = require("request");
  let url = `http://study.163.com/dwr/call/plaincall/MongoAttributesBean.obtainByRandomWithLimitTime.dwr?${+new Date()}`;
  let body = `callCount=1\nscriptSessionId=\${scriptSessionId}190\nhttpSessionId=17faef42e6db4291819618913dc7f8da\nc0-scriptName=MongoAttributesBean\nc0-methodName=obtainByRandomWithLimitTime\nc0-id=0\nc0-param0=string:spjdt\nc0-param1=number:7\nbatchId=1521527406791\n`;
  let opts = {
    url,
    method: "POST",
    headers: { "Content-Type": "text/plain" },
    body: body
  }
  request(opts, (e, b, d) => {
    if (e) return console.log(e);
    console.log(d);
  })
4、运行结果


能正常获取返回的数据。

例子2

1、地址:http://study.163.com/p/search/studycourse.json
这是网易云课堂搜索课程的请求地址。
2、请求截图

"Content-Type"为"application/json";数据发送方式也是:Request Payload,
数据格式为标准的JSON字符串。
3、nodejs代码
  let request = require("request");
  let url = `http://study.163.com/p/search/studycourse.json`;
  let body = {
    activityId: 0,
    keyword: "nodejs",
    orderType: 5,
    pageIndex: 1,
    pageSize: 50,
    priceType: -1,
    relativeOffset: 0,
    searchTimeType: -1,
  };
  let opts = {
    url,
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(body)
  }
  request(opts, (e, b, d) => {
    if (e) return console.log(e);
    console.log(d);
  })
4、运行结果

这个list就是搜索到的课程结果。
已标记关键词 清除标记
相关推荐
<span style="font-size:24px;">课程总共分10个部分</span><br /> <span style="font-size:24px;"> 1.Jmeter概述,</span><br /> <span style="font-size:24px;"> 介绍meter是干什么的,为什么要选择学习它、jmeter性能测试的基本原理、jmeter性能测试的基本流程、以及如何学</span><br /> <span style="font-size:24px;"> 2.Jmeter安装</span><br /> <span style="font-size:24px;">   介绍jdk、jmeter、jmeter插件的安装</span><br /> <span style="font-size:24px;"> 3.我的第一个jmeter脚本。</span><br /> <span style="font-size:24px;"> 录制编辑一个简单的测试计划,让大家能快速有个整体的感性认识,能快速看展测试工作;</span><br /> <span style="font-size:24px;">   也有人喜欢自己写脚本,自己根据需要,我一般还是录制之后编辑修改,个人觉得比较方便,而且效率高一些。</span><br /> <span style="font-size:24px;"> 像这个过程,我们也可以改为手工创建....</span><br /> <span style="font-size:24px;"> 4.Jmeter的基础知识 </span><br /> <span style="font-size:24px;"> 介绍jmeter的原理和基本元件</span><br /> <span style="font-size:24px;"> 对各个测试元件进行讲解,掌握更多的武琦,让我们测试能游刃有余</span><br /> <span style="font-size:24px;"> 5.Jmeter脚本的录制</span><br /> <span style="font-size:24px;">  介绍jmeter的录制原理,并演示如何录制。</span><br /> <span style="font-size:24px;">  对于https协议,需要的额外工作。</span><br /> <span style="font-size:24px;"> 6.Jmeter脚本的增强</span><br /> <span style="font-size:24px;"> 主要包括:添加延时器、监听器、增加断言、进行参数化、增加关联、增加事务</span><br /> <span style="font-size:24px;"> 7.Jmeter脚本的执行</span><br /> <span style="font-size:24px;"> 8.Jmeter脚本的结果分析</span><br /> <span style="font-size:24px;"> 9.Jmeter脚本的最佳实践</span><br /> <span style="font-size:24px;"> Jmeter需要遵守最佳实践的规定,确保测试结果的可信性。</span><br /> <br /> <span style="font-size:24px;"> 一定要实际操作练习,否则光在岸上看别人游泳是学不会的!</span><br /> <br /> <p> <span style="font-size:24px;"> 欢迎关注我刚起步的CSDN博客:https://blog.csdn.net/caohongxing</span> </p> <p> <br /> </p> <p> <img src="https://edu-image.nosdn.127.net/0ca8173a-f9f0-4d03-a966-d1b06ff6942a.png" alt="" /> </p> <p> <img src="https://edu-image.nosdn.127.net/cc648a61-9e96-4cfe-9b50-256ebd978708.png" alt="" /> </p> <p> <br /> </p> <p> <img src="https://edu-image.nosdn.127.net/959b76bb-7099-465a-8a9f-af4bffaa41fb.png" alt="" /> </p> <p> <br /> </p> <p> <img src="https://edu-image.nosdn.127.net/c5eef73a-d4aa-4165-827f-7f2e1686e353.png" alt="" /> </p> <p> <br /> </p> <p> <img src="https://edu-image.nosdn.127.net/5104ee21-db7d-46ff-8236-875e1c158e28.png" alt="" /> </p>
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页