问题描述
- python爬虫,遇到403 forbidden,求助。
-
# -*- coding: utf-8 -*- import re import sys import requests reload(sys) sys.setdefaultencoding("utf-8") if __name__ == '__main__': url = 'https://movie.douban.com/subject/1433330/photos?type=W' # 获取网页源码 html = requests.get(url) # 抓每个图片链接 pic_url = re.findall('<img src="https://(.*?)" />', html.text, re.S) #此链接为预览链接 i = 0 for each in pic_url: raw = re.sub('thumb','raw',each,re.S) //将预览链接中的thumb替换成raw,便成了高清图片链接 print 'now download..'+'https://'+raw pic = requests.get('https://'+raw) f = open('hp'+str(i)+'.jpg','wb') f.write(pic.content) f.close() i += 1
刚开始学爬虫,爬豆瓣电影的壁纸练手。现在程序可以跑下来,不返回错,但是下载的图片是失败的,response 返回 403 forbidden。
我这样想问题的原因对吗?
因为我想下高清的,但是豆瓣查看高清壁纸前,需要登录,但我的程序是没有登录的,所以出现403是吗?所以我得模拟登陆是吗?
刚注册,木有悬赏币。。谢谢
解决方案
微软 403 Forbidden
403 forbidden
403 Forbidden
解决方案二:
之前做过很多爬虫处理,其实你要懂,不是每个网站都那么好爬虫的。
对方:例如豆瓣为了防止访问量过大,服务器压力的承受,所以就啪啪啪整个403给你(服务器理解客户的请求,但拒绝处理它)。
他给你返回403,就是告诉你一种状态,根据他告诉你的态度,你作为男朋友的是不是应该改改自己的脾气。例如,对方发现你没有加header,对方发现你Cookies不对,或者是发现你的访问速度过快,所以就直接block你了。
很多这样衍生的问题,作为一个聪明的Crawler,你应该知道怎么爬对方的东西,才让对方服务器把你判断为人,而不是爬虫程序。
总之一句,根据反馈的错误信息,去思考应该怎么处理问题。这里没有给出详细的答案,但是你可以尝试着去理解豆瓣的block机制。
解决方案三:
403就是告诉你没有权限,这个服务器做了判断,需要对用户身份做验证,一般会通过cookie等,所以你没有登陆就没办法访问。
解决方案四:
你可以使用代理ip,可以使用神箭手云爬虫,自带ip代理的爬虫。
时间: 2024-12-03 11:55:53