谷姐:我们都是谷歌迷
We are all Google fans

有没有经常爬虫的大佬帮我解惑(python)-小黑啊

Rate this post

尝试的网站是 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请求能够成功下载到图片响应状态2003)然后我用python下载到了图2页面的全部代码,拼接出data(前面分析得到的结果),然后下载发现403,4)然后我把拼接出来的data直接放到之前写的用来下载的post请求代码里面反馈也是403,我就觉得是自己data找错了,检查了一下发现代码没错,5)然后我把这个网址直接放到浏览器里面去打开,打开之后发现居然内容和python获取的页面源码不一样(主要是value不一样,但是这个值特别重要)见图5,浏览器获得的value可以用python写的post请求下载,但是python获取的value不行请大佬指教。




    热议
    2楼 wjj 昨天23:37

    盲猜是因为_csrf参数校验没通过

    3楼 千牛 昨天23:45

    referer和UA呢
    尽量保证header头一致

    4楼 小黑啊 昨天23:47

    千牛 发表于 2023-3-28 23:45
    referer和UA呢
    尽量保证header头一致

    referer没加,只加了UA

    5楼 小黑啊 昨天23:48

    wjj 发表于 2023-3-28 23:37
    盲猜是因为_csrf参数校验没通过

    什么意思,没明白啊,那要怎么才能校验通过

    6楼 3xI 昨天23:51

    我这代码太烂,编辑了

    7楼 yy10112001 昨天23:54

    csrf每次都會變。
    你沒有獲取最新的csrf吧。

    8楼 小黑啊 10小时前

    3xI 发表于 2023-3-28 23:51
    我这代码太烂,编辑了

    我已经复制了,嘻嘻,不过我试了一下,只下载了两个图片,不知道是什么原因

    9楼 小黑啊 10小时前

    yy10112001 发表于 2023-3-28 23:54
    csrf每次都會變。
    你沒有獲取最新的csrf吧。

    是,确实每次都变,就连浏览器刷新前后两次的都不一样,用python获取每次也都不一样,但是用python获取的作为data就是不能下载,直接从浏览器那里获得的值放到data就能够下载,不清楚原因,不知道会不会是cookie有影响

    10楼 3xI 10小时前

    我已经复制了,嘻嘻,不过我试了一下,只下载了两个图片,不知道是什么原因 ...

    for循环那里有个切片。。

    12楼 acpp 10小时前

    测试了下,没有反爬虫检测的。
    理论上只要取一次cookies得到csrf和一次页面csrf,后面只变动photoId参数值就可以一直下载了。

    13楼 iuxjo 10小时前

    ...

    14楼 wjj 10小时前

    什么意思,没明白啊,那要怎么才能校验通过

    postman试了下,应该不是_csrf参数的问题,更换photoId随便下,header中要有合法cookie

    15楼 小黑啊 10小时前

    acpp 发表于 2023-3-29 00:12
    测试了下,没有反爬虫检测的。
    理论上只要取一次cookies得到csrf和一次页面csrf,后面只变动photoId参数值 ...

    那说明还是我技术不行啊,明天再试,不成功誓不罢休

    16楼 小黑啊 10小时前

    wjj 发表于 2023-3-29 00:13
    postman试了下,应该不是_csrf参数的问题,更换photoId随便下
    检查header吧,保持一致 ...

    诶,好像是啊,好像两次请求的UA还真还真不是一样的,我明天再看看,之前没注意这么多啊

    17楼 iuxjo 10小时前

    当我没说

    18楼 小黑啊 10小时前

    iuxjo 发表于 2023-3-29 00:17
    当我没说

    不是,这个下载下来的图片和网页上点击free download下载的图片大小不一样大,我觉得不高清,还有我主要吧就是想练练手,所以怎么复杂怎么好怎么来

    19楼 acpp 10小时前

    那说明还是我技术不行啊,明天再试,不成功誓不罢休

    返回403,要么cookies问题,要么页面的csrf提取问题。这2个输出看下就知道了。

    20楼 小黑啊 10小时前

    acpp 发表于 2023-3-29 00:12
    测试了下,没有反爬虫检测的。
    理论上只要取一次cookies得到csrf和一次页面csrf,后面只变动photoId参数值 ...

    问题找到了,就是headers问题,第一次使用headers时没有加cookie,第二次不加cookie就403,所以加了,没想到是这么个小细节花了我一晚上

    22楼 坏坏 10小时前

    用什么爬虫

    直接下一个ExPictureFinder

    把网址放进去,,然后点下载,全站都能下来

    23楼 小黑啊 10小时前

    acpp 发表于 2023-3-29 00:30
    返回403,要么cookies问题,要么页面的csrf提取问题。这2个输出看下就知道了。 ...

    对,就是一个headers没加cookie导致的

    24楼 yrainy 10小时前

    看了半天,就着急看你的代码,死活没找到,不给看代码你光文字谁知道啊

    25楼 yy10112001 10小时前

    ......

    26楼 小黑啊 9小时前

    yy10112001 发表于 2023-3-29 01:00
    ......

    复杂的网站可能确实需要用webdriver,这个网站不需要,就是我细节处理不好headers有问题,

    27楼 小黑啊 9小时前

    坏坏 发表于 2023-3-29 00:43
    用什么爬虫

    直接下一个ExPictureFinder

    目的就是学习python,所以

    28楼 小黑啊 9小时前

    yrainy 发表于 2023-3-29 00:45
    看了半天,就着急看你的代码,死活没找到,不给看代码你光文字谁知道啊

    https://drive.google.com/file/d/1dM6s9kOkbrAOL4PZpHx6pQxHx1C0FthB/view?usp=sharing

    代码奉上,初次练手,有什么要改进的欢迎提出,勿喷

    29楼 dragonfsky 9小时前

    一力破十慧,直接上selenium

    申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。

未经谷姐允许不得转载:谷姐靓号网 » 有没有经常爬虫的大佬帮我解惑(python)-小黑啊
分享到: 生成海报

热门文章

评论 抢沙发

评论前必须登录!

立即登录   注册

买Google Voice认准【谷姐靓号网】

Google Voice靓号列表Google Voice自助购买
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活