小黑啊 大佬有话说 :
有没有经常爬虫的大佬帮我解惑(python)
本帖最后由 小黑啊 于 2023-3-28 23:37 编辑
尝试的网站是 https://stocksnap.io/(这是个免费图片网站,可能对于大佬来说很简单,勿喷)
思路
1 获取json的url(直接百度,吸取了前人的经验)见图1,但是这个教程里面下载的不是高清图片所以我没有按照这个方案来
2 通过json分析出每个图片主页面的url,如图2
3 进入图片主页面,分析点击free download按钮后执行操作,用python模仿这个操作实现下载,如图2
问题了出现在第三步:
[*]1) 经过分析后找到点击free download后就是发送了个post请求,post请求的data内容我也在浏览器的元素里面找到了如图3(顺便一提,这个需要加cookie,我就直接从浏览器复制的,好像过一段时间需要更新一下,而且不同电脑的cookie还不通用),
[*]2 )尝试直接将post请求里面的data复制过来,使用python通过post请求能够成功下载到图片响应状态200
[*]3)然后我用python下载到了图2页面的全部代码,拼接出data(前面分析得到的结果),然后下载发现403,
[*]4)然后我把拼接出来的data直接放到之前写的用来下载的post请求代码里面反馈也是403,我就觉得是自己data找错了,检查了一下发现代码没错,
[*]5)然后我把这个网址直接放到浏览器里面去打开,打开之后发现居然内容和python获取的页面源码不一样(主要是value不一样,但是这个值特别重要)见图5,浏览器获得的value可以用python写的post请求下载,但是python获取的value不行
[*]请大佬指教。
https://i.328888.xyz/2023/03/28/iWUJQL.png
https://i.328888.xyz/2023/03/28/iWW9Fc.png
https://i.328888.xyz/2023/03/28/iWWLlo.png
https://i.328888.xyz/2023/03/28/iWkWyy.png
wjj 大佬有话说 :
盲猜是因为_csrf参数校验没通过
千牛 大佬有话说 :
referer和UA呢
尽量保证header头一致
小黑啊 大佬有话说 :
千牛 大佬有话说 : 2023-3-28 23:45
referer和UA呢
尽量保证header头一致
referer没加,只加了UA
小黑啊 大佬有话说 :
wjj 大佬有话说 : 2023-3-28 23:37
盲猜是因为_csrf参数校验没通过
什么意思,没明白啊,那要怎么才能校验通过
3xI 大佬有话说 :
本帖最后由 3xI 于 2023-3-29 00:00 编辑
我这代码太烂,编辑了
yy10112001 大佬有话说 :
csrf每次都會變。
你沒有獲取最新的csrf吧。
小黑啊 大佬有话说 :
3xI 大佬有话说 : 2023-3-28 23:51
我这代码太烂,编辑了
我已经复制了,嘻嘻,不过我试了一下,只下载了两个图片,不知道是什么原因
小黑啊 大佬有话说 :
yy10112001 大佬有话说 : 2023-3-28 23:54
csrf每次都會變。
你沒有獲取最新的csrf吧。
是,确实每次都变,就连浏览器刷新前后两次的都不一样,用python获取每次也都不一样,但是用python获取的作为data就是不能下载,直接从浏览器那里获得的值放到data就能够下载,不清楚原因,不知道会不会是cookie有影响
3xI 大佬有话说 :
小黑啊 大佬有话说 : 2023-3-29 00:04
我已经复制了,嘻嘻,不过我试了一下,只下载了两个图片,不知道是什么原因 …
for循环那里有个切片。。