当前位置: 首页 > article >正文

request爬虫库的小坑

今天在做爬虫的时候,想要请求一个json数据,

地址为:https://weibo.com/ajax/profile/info?uid=xxxxxxx
ID就自己去找一个哈。。。。本来这个应该是一个json数据,但是我的pycharm却返回了一个html,我百思不得其解,用apifox发现又是正常的,于是乎复制代码进行对比

我的代码:

import  requests

headers = {
    "Cookie" :"xxxxxxxxxxxxxxxx",
    "user-agent":"YYYYYYY"
}
reponse = requests.get("https://weibo.com/ajax/profile/info?uid=xxxx",headers)
print(reponse.text)

apifox的正确代码:

import requests

url = "https://weibo.com/ajax/profile/info?uid=xxxx"
payload={}
files={}
headers = {
   'Cookie': 'xxxxxxxxxxxxxxxx',
   'User-Agent': 'Apifox/1.0.0 (https://apifox.com)',
   'Accept': '*/*',
   'Host': 'weibo.com',
   'Connection': 'keep-alive'
}
response = requests.request("GET", url, headers=headers, data=payload, files=files)
print(response.text)

 聪明的你,能看出来哪里不一样吗???

A.headers内容不对导致的

B.参数不对

C.请求的方法不对

D.lz的程序太臭了运行不出json

-----------------------

-----------------------

-----------------------

-----------------------

答案是B!!

headers之前实验过,是没问题的

requests.get()和requests.request('GET,xxxx)是一样的实现,实现如下

def get(url, params=None, **kwargs):
    r"""Sends a GET request.

    :param url: URL for the new :class:`Request` object.
    :param params: (optional) Dictionary, list of tuples or bytes to send
        in the query string for the :class:`Request`.
    :param \*\*kwargs: Optional arguments that ``request`` takes.
    :return: :class:`Response <Response>` object
    :rtype: requests.Response
    """

    return request("get", url, params=params, **kwargs)

 正确的写法应该是:

response = requests.get("https://weibo.com/ajax/profile/info?uid=6028381202",headers=headers)

不指定header,会被解释为params,艹


http://www.kler.cn/a/394657.html

相关文章:

  • [OpenGL]使用 Compute Shader 实现矩阵点乘
  • 面试经典 150 题——数组/字符串(一)
  • 线性代数行列式
  • NodeMCU驱动28BYJ-48型步进电机(Arduino)
  • ElementPlus 自定义封装 el-date-picker 的快捷功能
  • 【服务端】灰度引擎的过程中如何保证数据的一致性?
  • C++ 面向接口编程而不是面向实现编程,其优点和具体措施
  • 线性DP 区间DP C++
  • Cyberchef配合Wireshark提取并解析HTTP/TLS流量数据包中的文件
  • Python中的正则表达式教程
  • 正则表达式那些事儿
  • 融合创新:CNN+LSTM在深度学习中的高效应用,助力科研发表高影响因子文章!
  • Linux之文件和目录类命令详解(2)
  • 在 Windows 11 中使用 MuMu 模拟器 12 国际版配置代理
  • Unity3D高级编程
  • 离线语音识别自定义功能怎么用?
  • C#预处理器指令#if和#endif:掌握条件编译的艺术
  • 使用 Vision 插件让 GitHub Copilot 识图问答
  • windows C#-异常处理
  • 中断的硬件框架
  • 贪心算法day 06
  • Docker 中启动 NGINX 并配置 HTTPS 443 端口
  • 如何用Java爬虫“偷窥”淘宝商品类目API的返回值
  • Linux学习,ip 命令
  • 介绍一下位操作符(c基础)
  • python调用MySql详细步骤