python爬虫入门(#3)——get方法详解之headers参数

前面写的程序都是使用了requests库的get方法来获取网页,
教条式的东西比如requests库的起源,原理,作用啥的,我就不细说了,到处都是,书上也很多,我就只写我认为可以派上用场的东西,当然这不是指我不说就不重要,该了解还是要了解的

request库 ----- get方法 ----- headers

get方法是模拟了浏览器发起的get请求,这个请求方法所发送的信息是包含在请求头里的,我们找一个看一下
在这里插入图片描述
这就是get方法向服务器发送的请求头headers
里面有很多参数,但我们现在不需要全部掌握,先了解下面这个个

User-Agent : Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36

顾名思义,Uesr-Agent 指明了这个请求的发起者,这里是chrome浏览器
如果我们使用 python 直接请求网页,然后打印他的 headers

url = 'https://httpbin.org/get'
response = requests.get(url, params=data)
print(response.text)

这里用了一个 https://httpbin.org/get
这是一个测试用的网址,最后的参数get表示测试get请求,暂时不需要对这个网址了解太多,知道它可以帮我们做一些简单的测试就行
它返回的结果是

{
  "args": {}, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.22.0"
  }, 
  "origin": "1.194.187.57, 1.194.187.57", 
  "url": "https://httpbin.org/get"
}

这里的 User-Agnet 的值指明了我们用的python程序来请求的网页
一般网页都不喜欢被爬虫爬取,除了搜索引擎之外其他的爬虫爬取网页对这个网站的拥有者来说是没有任何好处的,反而会消耗服务器资源
所以像我们这种大摇大摆地喊着自己是爬虫程序去找服务器要信息的自然是会被一脚踢出来,所以我们需要做一下伪装

既然服务器使用 get 请求时将 User-Agent 设置为浏览器标识,那我们直接把浏览器标识拿过来自己构造一个 headers 不就行了吗?
实际上 get 也提供了这个参数,我们可以使用 headers 参数来指定请求头

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36',
}

url = 'https://httpbin.org/get'
response = requests.get(url, headers=headers)
print(response.text)

返回的结果是

{
  "args": {}, 
  "headers": {
    "Accept": "*/*", 
    "Accept-Encoding": "gzip, deflate", 
    "Host": "httpbin.org", 
    "Server": "swoole-http-server", 
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"
  }, 
  "origin": "221.176.159.70, 221.176.159.70", 
  "url": "https://httpbin.org/get"
}

可以看到我们的 User-Agent 已经变成了 chrome 的标识
这样我们就可以绕过最基本的发爬虫措施,不会被服务器禁止了

  • 6
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我知道你想了解如何用 Python 爬取新浪微博评论。以下是一些步骤供您参考: 1. 安装必要的库 在使用 Python 爬取微博评论前,您需要安装一些必要的库。其中,requests 和 BeautifulSoup 库是必不可少的。 您可以使用以下命令在终端中安装它们: ``` pip install requests pip install beautifulsoup4 ``` 2. 登录微博并获取 cookie 在爬取微博评论之前,您需要登录您的微博账号并获取 cookie。 您可以使用 Chrome 浏览器登录您的微博账号。然后,按 F12 打开开发者工具,切换到“Network”选项卡并刷新页面。在“Filter”栏中输入“comment”,然后点击“XHR”选项卡。 接下来,您可以在“Headers”选项卡中找到“Request Headers”部分,复制“Cookie”字段的值。 3. 构造请求 URL 在获取 cookie 后,您需要构造请求 URL。以下是一个示例 URL:https://weibo.cn/comment/Jf3bhk1V5?uid=123456&page=1 其中,Jf3bhk1V5 是微博的 ID,123456 是用户的 ID,page 是评论的页数。 您可以使用 requests 库发送 GET 请求并传递 cookie、微博 ID 和页数参数。 以下是一个示例代码: ``` import requests from bs4 import BeautifulSoup cookie = 'your_cookie_here' url = 'https://weibo.cn/comment/Jf3bhk1V5?uid=123456&page=1' headers = { 'Cookie': cookie } response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, 'html.parser') # 解析评论 ``` 4. 解析评论 最后,您需要解析页面上的评论。您可以使用 BeautifulSoup 库来解析 HTML。 以下是一个示例代码: ``` comments = soup.find_all('div', class_='c') for comment in comments: # 获取评论内容 content = comment.find('span', class_='ctt').text # 获取评论时间 time = comment.find('span', class_='ct').text # 获取评论用户 user = comment.find('a', class_='nk').text # 输出评论信息 print(f'{user}({time}): {content}\n') ``` 以上就是用 Python 爬取新浪微博评论的一些步骤。请注意,爬取微博评论可能会违反微博的使用协议,因此请谨慎使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值