Pytho爬虫中Requests设置请求头Headers的方法


Posted in Python onSeptember 22, 2020

1、为什么要设置headers?

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

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

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

2、 headers在哪里找?

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

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

Pytho爬虫中Requests设置请求头Headers的方法

注意: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)

到此这篇关于Pytho爬虫中Requests设置请求头Headers的方法的文章就介绍到这了,更多相关Pytho Requests设置请求头Headers内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python strip()函数 介绍
May 24 Python
tornado框架blog模块分析与使用
Nov 21 Python
python 字典(dict)按键和值排序
Jun 28 Python
Python实现excel转sqlite的方法
Jul 17 Python
Python3中编码与解码之Unicode与bytes的讲解
Feb 28 Python
Python Opencv任意形状目标检测并绘制框图
Jul 23 Python
django-初始配置(纯手写)详解
Jul 30 Python
django 解决自定义序列化返回处理数据为null的问题
May 20 Python
详解numpy.ndarray.reshape()函数的参数问题
Oct 13 Python
使用Pytorch实现two-head(多输出)模型的操作
May 28 Python
PyTorch 如何检查模型梯度是否可导
Jun 05 Python
Python道路车道线检测的实现
Jun 27 Python
python 线程的五个状态
Sep 22 #Python
python 如何实现遗传算法
Sep 22 #Python
利用python汇总统计多张Excel
Sep 22 #Python
爬虫代理的cookie如何生成运行
Sep 22 #Python
python 如何将office文件转换为PDF
Sep 22 #Python
Python制作一个仿QQ办公版的图形登录界面
Sep 22 #Python
Python使用for生成列表实现过程解析
Sep 22 #Python
You might like
《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
如何删除多级目录
2006/10/09 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
thinkphp实现发送邮件密码找回功能实例
2014/12/01 PHP
php利用cookie实现自动登录的方法
2014/12/10 PHP
PHP实现的浏览器检查类
2016/04/11 PHP
THINKPHP在添加数据的时候获取主键id的值方法
2017/04/03 PHP
php支付宝APP支付功能
2020/07/29 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
2019/01/15 PHP
JavaScript 密码强度判断代码
2009/09/05 Javascript
Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因
2013/05/07 Javascript
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
javascript的alert box在java中如何显示多行
2014/05/18 Javascript
jquery采用oop模式class类的使用示例
2016/01/22 Javascript
angular-ui-sortable实现可拖拽排序列表
2016/12/28 Javascript
基于JQuery和原生JavaScript实现网页定位导航特效
2017/04/03 jQuery
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
深入浅出webpack之externals的使用
2017/12/04 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
微信小程序如何获取地址
2019/12/24 Javascript
[50:27]Secret vs VG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
基于python的七种经典排序算法(推荐)
2016/12/08 Python
python学习教程之Numpy和Pandas的使用
2017/09/11 Python
python类的方法属性与方法属性的动态绑定代码详解
2017/12/27 Python
python进行两个表格对比的方法
2018/06/27 Python
python3实现字符串的全排列的方法(无重复字符)
2018/07/07 Python
Python的numpy库下的几个小函数的用法(小结)
2019/07/12 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
德国家具购物网站:Möbel Höffner
2019/08/26 全球购物
应届生服装设计自我评价
2013/09/20 职场文书
单位在职证明范本
2014/01/09 职场文书
导游词之山东八大关
2019/12/18 职场文书
PHP实现考试倒计时功能代码
2021/04/16 PHP
Python基础之进程详解
2021/05/21 Python
nginx配置文件使用环境变量的操作方法
2021/06/02 Servers