Python爬虫实战:Requests模块GET请求参数与请求头处理详解

方予
方予
发布时间:2026-10-13 | 1人浏览过
原创

本文详解Python中Requests模块发起GET请求的两种常见场景:携带查询参数与自定义请求头。通过搜狗首页及搜索接口的实战代码,演示如何利用params字典传递URL参数,以及通过headers参数设置User-Agent以模拟浏览器访问,帮助开发者掌握基础爬虫请求构造技巧。

获取搜狗首页数据基础示例

本节主要探讨如何获取搜狗首页的页面数据,作为学习Requests模块的基础需求。


import requests
# 1.指定url
url = 'https://www.sogou.com/'
# 2.发起get请求:get方法会返回请求成功的响应对象
response = requests.get(url=url)
# 3.获取响应中的数据:text属性作用是可以获取响应对象中字符串形式的页面数据
page_data = response.text
# 4.持久化数据
with open("sougou.html","w",encoding="utf-8") as f:
  f.write(page_data)
  f.close()
print("ok")

接下来分析Requests模块在处理携带参数的GET请求时的具体机制,以及如何获取并处理返回的响应数据。

需求升级:指定具体的搜索词条,获取搜狗搜索结果对应的页面数据。

在之前的urllib模块中,处理URL中包含中文参数时需要手动进行编码处理,而Requests模块会自动处理URL编码,简化了开发流程。

Requests模块处理GET请求参数

演示如何发起一个带有查询参数的GET请求。

在Requests中,params参数支持传入字典或列表形式的参数,用于构建查询字符串。


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 body of the :class:`Request`.
  :param \*\*kwargs: Optional arguments that ``request`` takes.
  :return: :class:`Response <Response>` object
  :rtype: requests.Response

import requests
# 指定url
url = 'https://www.sogou.com/web'
# 封装get请求参数
prams = {
  'query':'周杰伦',
  'ie':'utf-8'
}
response = requests.get(url=url,params=prams)
page_text = response.text
with open("周杰伦.html","w",encoding="utf-8") as f:
  f.write(page_text)
  f.close()
print("ok")

自定义请求头与完整请求示例

利用Requests模块自定义请求头信息,并在此基础上发起带有参数的GET请求,以模拟特定浏览器环境。

GET方法提供了headers参数,可以将包含请求头信息的字典赋值给该参数,从而在请求中携带自定义头部信息。


import requests
# 指定url
url = 'https://www.sogou.com/web'
# 封装get请求参数
prams = {
  'query':'周杰伦',
  'ie':'utf-8'
}
# 自定义请求头信息
headers={
  'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36',
  }
response = requests.get(url=url,params=prams,headers=headers)
page_text = response.text
with open("周杰伦.html","w",encoding="utf-8") as f:
  f.write(page_text)
  f.close()
print("ok")

以上即为本文的全部内容,希望这些示例能对您的学习有所帮助,也欢迎大家继续支持本站获取更多技术分享。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表