python 爬虫出现403禁止访问错误详解
作者:完美风暴4 时间:2023-11-13 06:53:24
python 爬虫解决403禁止访问错误
在Python写爬虫的时候,html.getcode()会遇到403禁止访问的问题,这是网站对自动化爬虫的禁止,要解决这个问题,需要用到python的模块urllib2模块
urllib2模块是属于一个进阶的爬虫抓取模块,有非常多的方法,比方说连接url=//www.jb51.net/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","//www.jb51.net/")
其中User-Agent是浏览器特有的属性,通过浏览器查看源代码就可以查看到
然后
html=urllib2.urlopen(req)
print html.read()
就可以把网页代码全部下载下来,而没有了403禁止访问的问题。
对于以上问题,可以封装成函数,供以后调用方便使用,具体代码:
#-*-coding:utf-8-*-
import urllib2
import random
url="//www.jb51.net/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","//www.jb51.net/")
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访问的信息。
当然如果访问频率过快的话,有些网站还是会过滤的,解决这个需要用到 * 的方法。。。具体的自己解决
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
来源:http://blog.csdn.net/jsqfengbao/article/details/44594985
标签:python,爬虫解决,403,禁止访问
0
投稿
猜你喜欢
pytorch如何利用ResNet18进行手写数字识别
2022-02-07 04:07:26
BootStrap tooltip提示框使用小结
2023-07-02 05:25:25
python 实现让字典的value 成为列表
2022-01-16 00:26:30
页面重构应注意的repaint和reflow
2011-03-31 17:11:00
基于vue+element实现全局loading过程详解
2023-07-02 17:01:05
各种语言、服务器301跳转代码全集
2023-07-23 04:24:45
在子页中隐藏模板页中的div示例代码
2023-07-23 12:12:28
Python Flask异步发送邮件实现方法解析
2023-08-15 04:29:12
python翻译软件实现代码(使用google api完成)
2023-05-19 17:25:43
使用TensorFlow直接获取处理MNIST数据方式
2022-12-16 22:35:49
OpenCV+Python3.5 简易手势识别的实现
2022-06-02 18:38:26
php ajax异步读取rss文档数据
2023-10-17 19:59:02
MySQL备份与恢复之冷备(1)
2024-01-26 13:37:50
vue中使用props传值的方法
2024-05-03 15:10:50
Php中用PDO查询Mysql来避免SQL注入风险的方法
2023-07-18 06:37:42
python 判断linux进程,并杀死进程的实现方法
2022-06-24 22:31:54
idea连接SQL Server数据库的详细图文教程
2024-01-14 05:32:54
Python+drawpad实现CPU监控小程序
2022-05-30 19:54:38
Python针对给定列表中元素进行翻转操作的方法分析
2022-04-19 18:37:07
pytorch 数据加载性能对比分析
2022-04-17 04:22:22