html5 xhr作用,HTML5前端技术分享 百度图片爬取

原标题:HTML5前端技术分享 百度图片爬取

语言:python 2.7

Library:urllib2,re

爬取流程:

1. 运用Chrome开发者东西,剖析百度图片

a) 翻开浏览器,在百度图片输入查找关键【昆虫】,如下图

00a69ed244af8a1c218eb0b1d2712170.png

由于百度图片具有懒加载的特性,当页面向下翻滚时,会从服务器加载新的图片资源。而这一进程,通常是用ajax完成的。因此咱们估测,图片能够经过发送ajax恳求(本质上便是http恳求)来得到。

b) 在浏览器界面,鼠标右键挑选【审查】,翻开chrome开发者东西

d49675cc908fc18e03dc61b6589b8037.png

c) 挑选【network】标签页,剖析网络恳求

641a528d1bdd3bd1b0c58ba9f1e09d94.png

d) 从头改写页面,并向下翻滚页面,触发懒加载。涉及到的网络恳求如下图所示,咱们要点重视xhr恳求,由于有很大可能,便是恳求图片信息的ajax恳求。

d4fbcf64375ae2a35083bdc8378dbd5a.png

e) 咱们注意到第一个xhr恳求的地址,是logininfo,所以不太可能是恳求图片。所以咱们将焦点放到第二和第三个xhr恳求上。点击第二个xhr恳求,详细信息如下所示:

755a34209be3f809ffff42ad8f250217.png

从上图信息能够发现,这个xhr恳求中有一些关于查找相关的参数,【queryWord=%E6%98%86%E8%99%AB】经过将信息进行URL解码,得出的成果为【queryWord=昆虫】,证明这个便是咱们所要的,获得图片的xhr恳求。

解码成果如图:

复制整个xhr恳求的url地址,粘贴到浏览器的地址栏中,得到了该恳求的呼应数据。数据片段如下图:

459b53cfc31c62edd482349805280948.png

我们需要注意到,数据中有一个data数组,而且每个元素中,都有一个objURL的特点,其值为:

”ippr_z2C$qAzdH3FAzdH3Frtv_z&e3Bcbrtv_z&e3Bv54AzdH3FcbrtvAzdH3F8cAzdH3Fn9AzdH3FbcAzdH3FddbcbPICRhY_8ad9_z&e3B3r2”

能够估测出,其值为加密后的url,详细加密后和加密前对应联系如下所示:

_z2C$q → :

AzdH3F → /

_z&e3B → .

w → a

k → b

v → c

1 → d

j → e

u → f

2 → g

i → h

t → i

3 → j

h → k

s → l

4 → m

g → n

5 → o

r → p

q → q

6 → r

f → s

p → t

7 → u

e → v

o → w

8 → 1

d → 2

n → 3

9 → 4

c → 5

m → 6

0 → 7

b → 8

l → 9

a → 0

依据对应联系,得出上面objURL所对应的图片途径为:

http://pic.58pic.com/58pic/15/34/85/22858PICRkY_1024.jpg

数据一切objURL进行解密操作,得出一切图片所对应的实在途径。

经过http恳求图片,再将返回的数据,保存到文件中,就完成了图片的爬取。

2. 代码完成:

a) 发送xhr恳求的代码片段

916a1ecda7f26a7dbbc903cacb6045a6.png

b) 经过正则表达式,在返回的字符串中,萃取出一切的objURL所对应的值

f45e9f186913882a7620031d0e221854.png

c) 将提取出的objURL,进行解密

beed95adc3ddfb9054f7636cdc374d06.png

d) 下载图片,并保存到文件中

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值