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解析文件示例
Jan 23 Python
python实现随机密码字典生成器示例
Apr 09 Python
Python实例之wxpython中Frame使用方法
Jun 09 Python
python生成器表达式和列表解析
Mar 10 Python
Flask框架的学习指南之制作简单blog系统
Nov 20 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
对python中字典keys,values,items的使用详解
Feb 03 Python
利用pyshp包给shapefile文件添加字段的实例
Dec 06 Python
Pycharm 安装 idea VIM插件的图文教程详解
Feb 21 Python
python实现图片转字符画
Feb 19 Python
tensorflow中的梯度求解及梯度裁剪操作
May 26 Python
Python面向对象编程之类的概念
Nov 01 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
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
php 流程控制switch的简单实例
2016/06/07 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
IE iframe的onload方法分析小结
2010/01/07 Javascript
JS实现Enter键跳转及控件获得焦点
2013/08/12 Javascript
javascript自然分类法算法实现代码
2013/10/11 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
AngularJS执行流程详解
2017/02/17 Javascript
解决JQuery全选/反选第二次失效的问题
2017/10/11 jQuery
js+SVG实现动态时钟效果
2018/07/14 Javascript
解决IE11 vue +webpack 项目中数据更新后页面没有刷新的问题
2018/09/25 Javascript
vue-router启用history模式下的开发及非根目录部署方法
2018/12/23 Javascript
Vuepress 搭建带评论功能的静态博客的实现
2019/02/17 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
用Python实现QQ游戏大家来找茬辅助工具
2014/09/14 Python
在Python编程过程中用单元测试法调试代码的介绍
2015/04/02 Python
Python实现的数据结构与算法之队列详解
2015/04/22 Python
详解Python利用random生成一个列表内的随机数
2019/08/21 Python
使用python切片实现二维数组复制示例
2019/11/26 Python
Python多进程multiprocessing、进程池用法实例分析
2020/03/24 Python
jupyter notebook 多行输出实例
2020/04/09 Python
ProForm英国站点:健身房和健身器材网上商店
2019/06/05 全球购物
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
教师岗位职责
2013/11/17 职场文书
餐厅考勤管理制度
2014/01/28 职场文书
快餐公司创业计划书
2014/04/29 职场文书
三好生演讲稿
2014/09/12 职场文书
上课迟到检讨书
2015/05/06 职场文书
煤矿百日安全活动总结
2015/05/07 职场文书
指导教师推荐意见
2015/06/05 职场文书
高三教师工作总结2015
2015/07/21 职场文书
陶瓷类经典广告语集锦
2019/10/25 职场文书
Java 在生活中的 10 大应用
2021/11/02 Java/Android