Chysial 发表于 2020-3-30 12:43:08

用requests模块能爬百度图片吗

百度图片是动态的,不知道requests能不能爬,单独打开url时候,内容是源代码,没法看

suchocolate 发表于 2020-3-30 13:58:59

可以,只是你需要多requests.get一次,比如搜猫咪,第一张图片的src是base64压缩的小图,不适合保存。你需要到它大图的页面-href属性,如:https://xxx.ilovefishc.com/album/202003/30/135239sxixuk5oiiau2j7i.png
之后在新的页面里,你就可以看到原图的url了,下载这个url就可以了。
https://xxx.ilovefishc.com/album/202003/30/135833gb1bgnuehm1y4nme.png

Chysial 发表于 2020-3-30 14:49:39

suchocolate 发表于 2020-3-30 13:58
可以,只是你需要多requests.get一次,比如搜猫咪,第一张图片的src是base64压缩的小图,不适合保存。你需 ...

这个图片的大类,class = 'imgitem'里边的objurl属性存在真正地址,我一般用selenium爬这个,但是requests。get(百度图片=猫咪的网址)能查找到imgitem吗,我requests.text里边全是和源代码似的都是静态的

admintest166 发表于 2020-3-30 15:04:46

你用requests+解析库就可以啊
不需要用selenium 有点大材小用

admintest166 发表于 2020-3-30 15:07:36

本帖最后由 admintest166 于 2020-3-30 15:16 编辑

百度的图片 是通过AJAX渲染到页面的 所以你才发现他是动态的 你打开百度图片后 右键审查元素 然后点击XHR 然后图片往下滑 你就会看到有请求的
你requests请求XHR里面接口URL就行了

Chysial 发表于 2020-3-30 16:06:39

admintest166 发表于 2020-3-30 15:07
百度的图片 是通过AJAX渲染到页面的 所以你才发现他是动态的 你打开百度图片后 右键审查元素 然后点击XHR...

为啥我只有第一个文件 ,你后面类型的没有啊

admintest166 发表于 2020-3-30 16:09:54

Chysial 发表于 2020-3-30 16:06
为啥我只有第一个文件 ,你后面类型的没有啊

AJAX就是动态出现的啊 你网页往下拉 每30张图片就会出现
简单的说 你打开了网页默认就是先加载了30张图片所以你才看到只有一个请求 你往下拉 看到第31张图片的时候 就会有请求出来的
你最好还是科普一下AJAX吧 现在很多网站都是AJAX的动态加载

Chysial 发表于 2020-3-30 16:19:48

admintest166 发表于 2020-3-30 16:09
AJAX就是动态出现的啊 你网页往下拉 每30张图片就会出现
简单的说 你打开了网页默认就是先加载了30张图 ...

ok
thanks

suchocolate 发表于 2020-3-30 18:24:25

Chysial 发表于 2020-3-30 14:49
这个图片的大类,class = 'imgitem'里边的objurl属性存在真正地址,我一般用selenium爬这个,但是request ...

未必非得要imgitem元素,上面的图2明显就是原图url。
网页返回的text都是静态的,不太理解,你是指没有图片的的url吗,这可能根get的方式有关,header 或 cookie设置不对就有可能发生,这需要看一下代码。
selenium+无头浏览器适合绕过一些xhr或js的问题,但实际上比较消耗性能。打个比方,想要100米高的玻璃窗,selenium就是逐步建造100米高的大楼,玻璃窗会随着大楼建设完成出现。而如果知道玻璃窗的厂家电话,直接买一扇就好了,这是get,如果明白网址url的机理,用urllib或requests会更快。
ajax是在滚动or滑动的时候触发的,但其实只是get的header里加一个"X-Requested-With": "XMLHttpRequest",url有所变化。
看习惯。

Chysial 发表于 2020-3-30 20:34:33

suchocolate 发表于 2020-3-30 18:24
未必非得要imgitem元素,上面的图2明显就是原图url。
网页返回的text都是静态的,不太理解,你是指没有 ...

hh明白 ok我回去看看requests 但是我比较喜欢selenium的一步一步来
页: [1]
查看完整版本: 用requests模块能爬百度图片吗