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程序抓取网页的HTML信息的一个小实例
May 02 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
Apr 11 Python
利用matplotlib+numpy绘制多种绘图的方法实例
May 03 Python
pycharm远程调试openstack代码
Nov 21 Python
pandas读取CSV文件时查看修改各列的数据类型格式
Jul 07 Python
python对csv文件追加写入列的方法
Aug 01 Python
Python编程学习之如何判断3个数的大小
Aug 07 Python
python 循环数据赋值实例
Dec 02 Python
Python远程开发环境部署与调试过程图解
Dec 09 Python
解决pycharm最左侧Tool Buttons显示不全的问题
Dec 17 Python
Python实现使用dir获取类的方法列表
Dec 24 Python
python3 实现调用串口功能
Dec 26 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图片验证码代码
2008/03/27 PHP
浅谈web上存漏洞及原理分析、防范方法(文件名检测漏洞)
2013/06/29 PHP
ThinkPHP使用心得分享-分页类Page的用法
2014/05/15 PHP
php读取mssql的ntext字段返回值为空的解决方法
2014/12/30 PHP
php中foreach结合curl实现多线程的方法分析
2016/09/22 PHP
PHP查询分页的实现代码
2017/06/09 PHP
PHP 实现从数据库导出到.csv文件方法
2017/07/06 PHP
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
2018/12/25 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
详解PHP素材图片上传、下载功能
2019/04/12 PHP
超级退弹代码
2008/07/07 Javascript
JQuery小知识
2010/10/15 Javascript
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
JS模块与命名空间的介绍
2013/03/22 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
JavaScript控制图片加载完成后调用回调函数的方法
2015/03/20 Javascript
node.js调用C++开发的模块实例
2015/07/03 Javascript
AngularJS 自定义过滤器详解及实例代码
2016/09/14 Javascript
关于 jQuery Easyui异步加载tree的问题解析
2016/12/06 Javascript
在一个页面重复使用一个js函数的方法详解
2016/12/26 Javascript
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
nodejs中express入门和基础知识点学习
2018/09/13 NodeJs
vue基于better-scroll实现左右联动滑动页面
2020/06/30 Javascript
深入理解python try异常处理机制
2016/06/01 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
scrapy-redis源码分析之发送POST请求详解
2019/05/15 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
Bailey帽子官方商店:Bailey Hats
2018/09/25 全球购物
中科前程Java笔试题
2016/11/20 面试题
医生个人自我剖析材料
2014/10/08 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
2015年挂职锻炼工作总结
2014/12/12 职场文书
西岭雪山导游词
2015/02/06 职场文书
《我在为谁工作》:工作的质量往往决定生活的质量
2019/12/27 职场文书