python 爬虫出现403禁止访问错误详解


Posted in Python onMarch 11, 2017

python 爬虫解决403禁止访问错误

在Python写爬虫的时候,html.getcode()会遇到403禁止访问的问题,这是网站对自动化爬虫的禁止,要解决这个问题,需要用到python的模块urllib2模块

urllib2模块是属于一个进阶的爬虫抓取模块,有非常多的方法,比方说连接url=//3water.com/qysh123对于这个连接就有可能出现403禁止访问的问题

解决这个问题,需要以下几步骤:

<span style="font-size:18px;">req = urllib2.Request(url) 
req.add_header("User-Agent","Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36") 
req.add_header("GET",url) 
req.add_header("Host","blog.csdn.net") 
req.add_header("Referer","//3water.com/")

其中User-Agent是浏览器特有的属性,通过浏览器查看源代码就可以查看到

然后

html=urllib2.urlopen(req)


print html.read()

就可以把网页代码全部下载下来,而没有了403禁止访问的问题。

对于以上问题,可以封装成函数,供以后调用方便使用,具体代码:

#-*-coding:utf-8-*- 
 
import urllib2 
import random 
 
url="//3water.com/article/1.htm" 
 
my_headers=["Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36", 
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36", 
"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0" 
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14", 
"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Win64; x64; Trident/6.0)" 
  
] 
def get_content(url,headers): 
 ''''' 
 @获取403禁止访问的网页 
 ''' 
 randdom_header=random.choice(headers) 
 
 req=urllib2.Request(url) 
 req.add_header("User-Agent",randdom_header) 
 req.add_header("Host","blog.csdn.net") 
 req.add_header("Referer","//3water.com/") 
 req.add_header("GET",url) 
 
 content=urllib2.urlopen(req).read() 
 return content 
 
print get_content(url,my_headers)

其中用到了random随机函数,自动获取已经写好的浏览器类型的User-Agent信息,在自定义函数中需要写出自己的Host,Referer,GET信息等,解决这几个问题,就可以顺利访问了,不再出现403访问的信息。

当然如果访问频率过快的话,有些网站还是会过滤的,解决这个需要用到代理IP的方法。。。具体的自己解决

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Python 相关文章推荐
python删除列表内容
Aug 04 Python
Python中 传递值 和 传递引用 的区别解析
Feb 22 Python
pandas.loc 选取指定列进行操作的实例
May 18 Python
uwsgi+nginx部署Django项目操作示例
Dec 04 Python
Python操作json的方法实例分析
Dec 06 Python
python实现将多个文件分配到多个文件夹的方法
Jan 07 Python
详解Python基础random模块随机数的生成
Mar 23 Python
python图的深度优先和广度优先算法实例分析
Oct 26 Python
python编写一个会算账的脚本的示例代码
Jun 02 Python
python爬虫请求头的使用
Dec 01 Python
scrapy实践之翻页爬取的实现
Jan 05 Python
python 求两个向量的顺时针夹角操作
Mar 04 Python
Python如何读取MySQL数据库表数据
Mar 11 #Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 #Python
Python搭建HTTP服务器和FTP服务器
Mar 09 #Python
开源Web应用框架Django图文教程
Mar 09 #Python
Python运算符重载详解及实例代码
Mar 07 #Python
利用Python中的pandas库对cdn日志进行分析详解
Mar 07 #Python
python下os模块强大的重命名方法renames详解
Mar 07 #Python
You might like
Http 1.1 Etag 与 Last-Modified提高php效率
2008/01/10 PHP
Zend的AutoLoad机制介绍
2012/09/27 PHP
根据中文裁减字符串函数的php代码
2013/12/03 PHP
PHP的fsockopen、pfsockopen函数被主机商禁用的解决办法
2014/07/08 PHP
PHP实现的微信公众号扫码模拟登录功能示例
2019/05/30 PHP
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
jquery.cookie用法详细解析
2013/12/18 Javascript
关于onchange事件在IE和FF下的表现及解决方法
2014/03/08 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
2015/04/20 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
Seajs是什么及sea.js 由来,特点以及优势
2016/10/13 Javascript
基于Vue如何封装分页组件
2016/12/16 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
通过构造函数实例化对象的方法
2017/06/28 Javascript
js编写简单的计时器功能
2017/07/15 Javascript
详解在WebStorm中添加Vue.js单文件组件的高亮及语法支持
2017/10/21 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
2017/11/22 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
2016/07/04 Python
python3操作mysql数据库的方法
2017/06/23 Python
python 魔法函数实例及解析
2019/09/25 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
2020/04/08 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
matplotlib之pyplot模块坐标轴标签设置使用(xlabel()、ylabel())
2021/02/22 Python
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
水果花束:Fruit Bouquets
2017/12/20 全球购物
管理心得体会
2013/12/28 职场文书
《诚实与信任》教学反思
2014/04/10 职场文书
董事长秘书工作职责
2014/06/10 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
钱学森电影观后感
2015/06/04 职场文书
nginx+lua单机上万并发的实现
2021/05/31 Servers