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自动化测试Eclipse+Pydev 搭建开发环境
Aug 15 Python
pycharm下打开、执行并调试scrapy爬虫程序的方法
Nov 29 Python
快速了解Python相对导入
Jan 12 Python
python遍历文件夹找出文件夹后缀为py的文件方法
Oct 21 Python
python3实现字符串操作的实例代码
Apr 16 Python
Python Django 页面上展示固定的页码数实现代码
Aug 21 Python
浅析python redis的连接及相关操作
Nov 07 Python
Selenium自动化测试工具使用方法汇总
Jun 12 Python
python要安装在哪个盘
Jun 15 Python
如何创建一个Flask项目并进行简单配置
Nov 18 Python
Python约瑟夫生者死者小游戏实例讲解
Jan 04 Python
使用OpenCV实现人脸图像卡通化的示例代码
Jan 15 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
PHP封装分页函数实现文本分页和数字分页
2014/10/23 PHP
php实现scws中文分词搜索的方法
2015/12/25 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
2017/05/24 PHP
PHP实现创建微信自定义菜单的方法示例
2017/07/14 PHP
php把字符串指定字符分割成数组的方法
2018/03/12 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
jquery lazyload延迟加载技术的实现原理分析
2011/01/24 Javascript
ExtJS的拖拽效果示例
2013/12/09 Javascript
jquery的ajax跨域请求原理和示例
2014/05/08 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
详细分析使用AngularJS编程中提交表单的方式
2015/06/19 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
location.hash保存页面状态的技巧
2016/04/28 Javascript
JavaScript性能优化总结之加载与执行
2016/08/11 Javascript
详谈js中数组(array)和对象(object)的区别
2017/02/27 Javascript
webpack配置打包后图片路径出错的解决
2018/04/26 Javascript
jQuery实现的页面详情展开收起功能示例
2018/06/11 jQuery
js中script的上下放置区别,Dom的增删改创建操作实例分析
2019/12/16 Javascript
vue swipeCell滑动单元格(仿微信)的实现示例
2020/09/14 Javascript
Python文件夹与文件的操作实现代码
2014/07/13 Python
Python实现高效求解素数代码实例
2015/06/30 Python
老生常谈Python进阶之装饰器
2017/05/11 Python
Python hashlib模块用法实例分析
2018/06/12 Python
Python Pandas 箱线图的实现
2019/07/23 Python
Python中url标签使用知识点总结
2020/01/16 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
2020/02/06 Python
python调用百度AI接口实现人流量统计
2021/02/03 Python
pandas数据分组groupby()和统计函数agg()的使用
2021/03/04 Python
Ruby如何实现动态方法调用
2012/11/18 面试题
酒店服务与管理毕业生求职信
2013/11/02 职场文书
餐饮业会计岗位职责
2013/12/19 职场文书
家长对小学生的评语
2014/01/28 职场文书
倡导文明标语
2014/06/16 职场文书
2014年终工作总结范本
2014/12/15 职场文书
Nginx缓存设置案例详解
2021/09/15 Servers