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获得文件创建时间和修改时间的方法
Jun 30 Python
浅析Git版本控制器使用
Dec 10 Python
Python实现七彩蟒蛇绘制实例代码
Jan 16 Python
Python中的异常处理try/except/finally/raise用法分析
Feb 28 Python
python 将日期戳(五位数时间)转换为标准时间
Jul 11 Python
django框架模型层功能、组成与用法分析
Jul 30 Python
Python多继承以及MRO顺序的使用
Nov 11 Python
Python 开发工具PyCharm安装教程图文详解(新手必看)
Feb 28 Python
设置jupyter中DataFrame的显示限制方式
Apr 12 Python
python dir函数快速掌握用法技巧
Dec 09 Python
python超详细实现完整学生成绩管理系统
Mar 17 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
Apr 24 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
改造一台复古桌面收音机
2021/03/02 无线电
深入php var_dump()函数的详解
2013/06/05 PHP
使用php实现快钱支付功能(涉及到接口)
2013/07/01 PHP
php实现通用的从数据库表读取数据到数组的函数实例
2015/03/21 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
thinkphp制作404跳转页的简单实现方法
2016/09/22 PHP
php实现将二维关联数组转换成字符串的方法详解
2017/07/31 PHP
浅谈php://filter的妙用
2019/03/05 PHP
解决Laravel无法使用COOKIE和SESSION的问题
2019/10/16 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
2020/02/06 PHP
浅析jQuery的链式调用之each函数
2010/12/03 Javascript
JS解析json数据并将json字符串转化为数组的实现方法
2012/12/25 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
2013/05/06 Javascript
javascript动态设置样式style实例分析
2015/05/13 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
jQuery常用的一些技巧汇总
2016/03/26 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
微信小程序开发之选项卡(窗口底部TabBar)页面切换
2017/04/12 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
浅析Vue下的components模板使用及应用
2019/11/27 Javascript
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
python局部赋值的规则
2013/03/07 Python
学习python 之编写简单乘法运算题
2016/02/27 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
浅谈python可视化包Bokeh
2018/02/07 Python
Python 查找字符在字符串中的位置实例
2018/05/02 Python
Django2.1.3 中间件使用详解
2018/11/26 Python
python实现全盘扫描搜索功能的方法
2019/02/14 Python
Python3.5面向对象程序设计之类的继承和多态详解
2019/04/24 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
《四季》教学反思
2014/04/08 职场文书
婚庆公司计划书
2014/09/15 职场文书
一文搞懂MySQL索引页结构
2022/02/28 MySQL
使用Ajax实现进度条的绘制
2022/04/07 Javascript