爬取**的时候,每次爬取图片都要转到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 ', '&')
拿这个网址去下载和访问图片就可以了,甚至不需要科学上网!