python - 怎么查看网址做的是什么反爬虫
问题描述
网址:https://www.nvshens.com/g/22377/,该网站直接游览器打开然后,点击图片右键是可以下载的,然后我爬虫直接请求下来的图片就已经被屏蔽了,然后我改了headers跟设置了ip代理,还是没用。但抓包来看也不是动态加载的数据呀!!!求解答= =
问题解答
回答1:妹子挺漂亮的哈。右键确实能打开,但是刷新一下就成盗链图片了。一般防盗链,服务器端是会检查请求头里面的Referer字段,这就是为什么刷新后就不是原图的原因(刷新后Referer变了)。
img_url = 'https://t1.onvshen.com:85/gallery/21501/22377/s/003.jpg'r = requests.get(img_url, headers={’Referer’:'https://www.nvshens.com/g/22377/'}).contentwith open('00.jpg',’wb’) as f: f.write(r)回答2:
获取图片时抓包看漏什么参数没。
回答3:光顾着看网站内容,差点忘记了正式了。你可以把你请求的信息全部按照
然后在试试
回答4:Referer 照这网站的设计应该是各别的页面会比较符合假装是人的行为,而并不是用单一的Referer以下是完整能跑的代码,抓18页所有的图片
# Putting all togetherdef url_guess_src_large (u): return ('https://www.nvshens.com/img.html?img=' + ’/’.join(u.split(’/s/’)))# 下载函数def get_img_using_requests(url, fn ): import shutil headers [’Referer’] = url_guess_src_large(url) #'https://www.nvshens.com/g/22377/' print (headers) response = requests.get(url, headers = headers, stream=True) with open(fn, ’wb’) as out_file:shutil.copyfileobj(response.raw, out_file) del responseimport requests# 用xpath擷取內容from lxml import etreeurl_ = ’https://www.nvshens.com/g/22377/{p}.html’ headers = { 'Connection' : 'close', # one way to cover tracks 'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2900.1 Iron Safari/537.36}'}for i in range(1,18+1): url = url_.format(p=i) r = requests.get(url, headers=headers) html = requests.get(url,headers=headers).content.decode(’utf-8’) selector = etree.HTML(html) xpaths = ’//*[@id='hgallery']/img/@src’ content = [x for x in selector.xpath(item)] urls_2get = [url_guess_src_large(x) for x in content] filenames = [os.path.split(x)[0].split(’/gallery/’)[1].replace('/','_') + '_' + os.path.split(x)[1] for x in urls_2get] for i, x in enumerate(content):get_img_using_requests (content[i], filenames[i])
相关文章:
1. 冒昧问一下,我这php代码哪里出错了???2. python - 如何使用jsom.dumps获得完整的json数据?3. 数据库安全 - 在公网上部署mysql数据库,安全方面需要做到哪些注意事项4. php - C#如何解析想mysql的my.ini这样的内容格式?5. css - 手机浏览器的兼容问题,微信和其它下载的浏览器打开没有问题,谷歌也测试过,就是手机自带的浏览器有问题。6. 求大神帮我看看是哪里写错了 感谢细心解答7. mysql - 数据库批量插入数据的速度是否与索引有关?8. python - django里GROUP BY 如何写这样的mysql语句?9. mysql - SQL问个基础例子,书上的,我怎么看都看不懂..谁帮我解释一下第2个为什么和第1个一样?10. python2.7 - 在Eclipse开发Python,怎么去掉控制台输出的其他消息??
