python爬虫出现403禁止访问错误详细说明

这篇文章主要介绍了python爬虫出现403禁止访问错误详细说明的相关资料,需要的朋友可以参考下

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

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

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

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

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”,”http://blog.csdn.net/”)

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

然后

html=urllib2.urlopen(req)
print html.read()

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

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

#-*-coding:utf-8-*-
import urllib2
import random
url=”http://blog.csdn.net/qysh123/article/details/44564943″
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”,”http://blog.csdn.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访问的信息。

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

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

以上就是python爬虫出现403禁止访问错误详细说明的详细内容,更多请关注 第一php社区 其它相关文章!

Posted in 未分类

发表评论