Selenium爬虫 -- 图片视频的src绝对地址链接分析

爬取**的时候,每次爬取图片都要转到mbasic.**网站,这样极容易被检测封号。

然后我发现在检查页面的元素的时候,图片和视频的链接都藏在了元素的style属性中。

思路:

定位多媒体元素 -> 获取src属性 -> 截取http网址 -> 对网址进行分析替换 -> 爬取多媒体资源

网址中有些反复出现的3a、3d、26等字符串,猜测可能是连接符之类的保密替换。

查询资料发现是网址URL中的特殊字符转义编码。

对照表:

字符 - URL编码值
空格 - %20
"    - %22
#    - %23
%    - %25
&    - %26
(    - %28
)    - %29
+    - %2B
,    - %2C
/    - %2F
:    - %3A
;    - %3B
<    - %3C
=    - %3D
>    - %3E
?    - %3F
@    - %40
    - %5C
|    - %7C

获取到保密的资源地址后,将这些字符替换,得到真正的网址。

pic = article.find_element_by_xpath(./div/div/i)
thepicstyle = pic.get_attribute(style)
picsrc = thepicstyle[thepicstyle.find(background-image: url()+23:thepicstyle.find();background-repeat)]
picsrc = picsrc.replace(\3a , :)
picsrc = picsrc.replace(\3d , =)
picsrc = picsrc.replace(\26 , &)

拿这个网址去下载和访问图片就可以了,甚至不需要科学上网!

经验分享 程序员 微信小程序 职场和发展