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自定义scrapy中间模块避免重复采集的方法
Apr 07 Python
浅谈pandas中shift和diff函数关系
Apr 08 Python
python opencv实现运动检测
Jul 10 Python
Django中日期处理注意事项与自定义时间格式转换详解
Aug 06 Python
python矩阵/字典实现最短路径算法
Jan 17 Python
python实现共轭梯度法
Jul 03 Python
python原类、类的创建过程与方法详解
Jul 19 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
Dec 31 Python
python openCV实现摄像头获取人脸图片
Aug 20 Python
如何使用python写截屏小工具
Sep 29 Python
python中pandas.read_csv()函数的深入讲解
Mar 29 Python
如何理解python接口自动化之logging日志模块
Jun 15 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
python进程与线程小结实例分析
2018/11/11 PHP
thinkphp5.1框架模板布局与模板继承用法分析
2019/07/19 PHP
批量实现面向对象的实例代码
2013/07/01 Javascript
js中style.display=&quot;&quot;无效的解决方法
2014/10/30 Javascript
js数组依据下标删除元素
2015/04/14 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
2015/04/20 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
BootStrap 下拉菜单点击之后不会出现下拉菜单(下拉菜单不弹出)的解决方案
2016/12/14 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
利用原生JS与jQuery实现数字线性变化的动画
2017/02/24 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
2017/03/13 Javascript
老生常谈Bootstrap媒体对象
2017/07/06 Javascript
详解node+express+ejs+bootstrap构建项目
2017/09/27 Javascript
react-native中ListView组件点击跳转的方法示例
2017/09/30 Javascript
bootstrap响应式工具使用详解
2017/11/29 Javascript
vue.js 中使用(...)运算符报错的解决方法
2018/08/09 Javascript
使用Angular 6创建各种动画效果的方法
2018/10/10 Javascript
微信小程序实现音乐播放器
2019/11/20 Javascript
js实现移动端吸顶效果
2020/01/08 Javascript
vue使用过滤器格式化日期
2021/01/20 Vue.js
python实现用户答题功能
2018/01/17 Python
python中不能连接超时的问题及解决方法
2018/06/10 Python
Python循环结构的应用场景详解
2019/07/11 Python
六种酷炫Python运行进度条效果的实现代码
2020/07/17 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
CSS3 中的@keyframes介绍
2014/09/02 HTML / CSS
HTML5新增加的功能详解
2016/09/05 HTML / CSS
阿拉伯书店:Jamalon
2019/07/24 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
八年级英语教学反思
2014/01/09 职场文书
2014信息公开实施方案
2014/02/22 职场文书
优秀食品类广告词
2014/03/19 职场文书
保护环境倡议书范文
2014/05/13 职场文书
运动会口号8字
2014/06/07 职场文书
SQL Server实现分页方法介绍
2022/03/16 SQL Server