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+selenium实现163邮箱自动登陆的方法
Dec 31 Python
对pandas的行列名更改与数据选择详解
Nov 12 Python
对pytorch中的梯度更新方法详解
Aug 20 Python
Django自带日志 settings.py文件配置方法
Aug 30 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
Python实现TCP通信的示例代码
Sep 09 Python
Python爬虫实现的根据分类爬取豆瓣电影信息功能示例
Sep 15 Python
打印tensorflow恢复模型中所有变量与操作节点方式
May 26 Python
Python新手学习函数默认参数设置
Jun 03 Python
Python实现在线批量美颜功能过程解析
Jun 10 Python
5款实用的python 工具推荐
Oct 13 Python
Python中的socket网络模块介绍
Jul 23 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学习之PHP运算符
2006/10/09 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
Laravel框架数据库CURD操作、连贯操作总结
2014/09/03 PHP
PHP实现图片裁剪、添加水印效果代码
2014/10/01 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
jQuery asp.net 用json格式返回自定义对象
2010/04/07 Javascript
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
jquery中防刷IP流量软件影响统计的一点对策
2011/07/10 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
2016/08/15 Javascript
jquery滚动条插件(可以自定义)
2016/12/11 Javascript
微信小程序实现图片预加载组件
2017/01/18 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
2017/07/06 Javascript
Windows下Node.js安装及环境配置方法
2017/09/18 Javascript
node 利用进程通信实现Cluster共享内存
2017/10/27 Javascript
vue页面切换到滚动页面显示顶部的实例
2018/03/13 Javascript
vue.config.js常用配置详解
2019/11/14 Javascript
[45:46]2014 DOTA2国际邀请赛中国区预选赛5.21 HGT VS DT
2014/05/23 DOTA
简介Python中用于处理字符串的center()方法
2015/05/18 Python
Python性能提升之延迟初始化
2016/12/04 Python
Python+树莓派+YOLO打造一款人工智能照相机
2018/01/02 Python
基于python OpenCV实现动态人脸检测
2018/05/25 Python
django中forms组件的使用与注意
2019/07/08 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
Pytorch技巧:DataLoader的collate_fn参数使用详解
2020/01/08 Python
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
澳大利亚现代波西米亚风格女装网站:Bohemian Traders
2018/04/16 全球购物
好家长事迹材料
2014/01/23 职场文书
英语老师推荐信
2014/02/26 职场文书
入学申请自荐信范文
2014/02/26 职场文书
小学生爱国演讲稿
2014/04/25 职场文书
校长四风对照检查材料
2014/09/27 职场文书
保安2014年终工作总结
2014/12/06 职场文书
模范教师材料大全
2014/12/16 职场文书
学校开除通知书
2015/04/25 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
JavaScript中isPrototypeOf函数
2021/11/07 Javascript