Python——爬虫【Requests设置请求头Headers】

1、为什么要设置headers? 


在请求网页爬取的时候,输出的text信息中会出现抱歉,无法访问等字眼,这就是禁止爬取,需要通过反爬机制去解决这个问题。

headers是解决requests请求反爬的方法之一,相当于我们进去这个网页的服务器本身,假装自己本身在爬取数据。

对反爬虫网页,可以设置一些headers信息,模拟成浏览器取访问网站 。


2、 headers在哪里找? 


谷歌或者火狐浏览器,在网页面上点击:右键–>检查–>剩余按照图中显示操作,需要按Fn+F5刷新出网页来 

有的浏览器是点击:右键->查看元素,刷新

注意:headers中有很多内容,主要常用的就是user-agent 和 host,他们是以键对的形式展现出来,如果user-agent 以字典键对形式作为headers的内容,就可以反爬成功,就不需要其他键对;否则,需要加入headers下的更多键对形式。

用Python下载一个网页保存为本地的HTML文件实例1-中文网页

import requests

# 中文网页:https://baike.so.com/doc/24386561-25208408.html
url1='https://baike.so.com/doc/24386561-25208408.html'
#添加请求头
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36 QIHU 360SE'
}
response_1=requests.get(url1, headers=headers)

response_1.encoding='utf-8'
#第一种:
# with open('steve_jobs2.html','w',encoding='utf-8') as f1:
#     f1.write(response_1.text)
#第二种:
f1=open('steve_jobs2.html','w',encoding='utf-8')
f1.write(response_1.text)

c=response_1.text
print(c)

 用Python下载一个网页保存为本地的HTML文件实例2-英文网页

import requests
import re

# 英文网页:https://en.wikipedia.org/wiki/Steve_Jobs
url2='https://en.wikipedia.org/wiki/Steve_Jobs'
response_2=requests.get(url2)
# 源码都是Utf-8编码
response_2.encoding='utf-8'
#第一种:
# with open('steve_jobs3.html','w',encoding='utf-8') as f2:
#     f2.write(response_2.text)
#第二种:
f2=open('steve_jobs3.html','w',encoding='utf-8')
f2.write(response_2.text)

c=response_2.text
print(c)

 

 

 

 

 

  • 132
    点赞
  • 629
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
Python中使用requests库发送HTTP请求时,可以通过设置请求头(headers)来模拟浏览器请求,以解决反爬虫的问题。要设置请求头,可以通过创建一个字典,并将其作为参数传递给headers参数。 例如,假设我们要设置一个自定义的User-Agent头,可以使用以下代码: ```python import requests url = 'https://api.example.com/some/endpoint' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' } response = requests.get(url, headers=headers) ``` 在这个例子中,我们创建了一个名为headers的字典,并将自定义的User-Agent头添加到其中。然后,我们将headers作为参数传递给get()方法,以发送带有自定义头的GET请求。 需要注意的是,headers的值必须是字符串、字节串或Unicode类型。尽管可以传递Unicode类型的header,但不推荐这样做。 此外,还要注意一些特殊情况。例如,如果在.netrc中设置了用户认证信息,使用headers参数设置的授权信息将不起作用。另外,如果被重定向到其他主机,授权头将被删除。代理授权头也会被URL中提供的代理身份覆盖。在能够确定内容长度的情况下,header的Content-Length会被改写。 总之,通过定制请求头,可以在使用Pythonrequests库发送HTTP请求时模拟浏览器,并解决一些反爬虫的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Python——爬虫Requests设置请求头Headers】](https://blog.csdn.net/ysblogs/article/details/88530124)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Pyhon : 爬虫Requests基础--定制请求头](https://blog.csdn.net/weixin_44523387/article/details/90718087)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值