Python爬虫正则表达式问题

爬取网站图片

提取元素

<img class="image" alt="collection 2 look 2" src="/on/demandware.static/-/Library-Sites-alexander-wang/default/dw3b4fc073/C220_WEBLOOK_2.jpg">
<img class="image" alt="collection 2 look 5" src="/on/demandware.static/-/Library-Sites-alexander-wang/default/dwf6a588b0/C220_WEBLOOK_5.jpg">
<img class="image" alt="collection 2 look 25" src="/on/demandware.static/-/Library-Sites-alexander-wang/default/dwe1d5fbbe/C220_WEBLOOK_25.jpg">

元素中显示Current source

https://www.alexanderwang.cn/dw/image/v2/BCCC_PRD/…wang/default/dw3b4fc073/C220_WEBLOOK_2.jpg?sw=342
https://www.alexanderwang.cn/dw/image/v2/BCCC_PRD/…wang/default/dwf6a588b0/C220_WEBLOOK_5.jpg?sw=342
https://www.alexanderwang.cn/dw/image/v2/BCCC_PRD/…wang/default/dw14e4ae6c/C220_WEBLOOK_7.jpg?sw=342

 

是使用元素进行正则表达还是图片网址进行表达?

<img class="image".*?.jpg">

https://www.alexanderwang.cn/dw/image/v2/BCCC_PRD/…wang/default/\.*?/C220_WEBLOOK_\.*?.jpg?sw=342

这两个正则表达对吗?

请问问题出在哪?

谢谢

用正则表达式<img class="image".*src="(.*)"可以获取元素列表:

import re

s = '''<img class="image" alt="collection 2 look 2" src="/on/demandware.static/-/Library-Sites-alexander-wang/default/dw3b4fc073/C220_WEBLOOK_2.jpg">
<img class="image" alt="collection 2 look 5" src="/on/demandware.static/-/Library-Sites-alexander-wang/default/dwf6a588b0/C220_WEBLOOK_5.jpg">
<img class="image" alt="collection 2 look 25" src="/on/demandware.static/-/Library-Sites-alexander-wang/default/dwe1d5fbbe/C220_WEBLOOK_25.jpg">'''
print(re.findall('<img class="image".*src="(.*)"',s))

#输出
['/on/demandware.static/-/Library-Sites-alexander-wang/default/dw3b4fc073/C220_WEBLOOK_2.jpg', '/on/demandware.static/-/Library-Sites-alexander-wang/default/dwf6a588b0/C220_WEBLOOK_5.jpg', '/on/demandware.static/-/Library-Sites-alexander-wang/default/dwe1d5fbbe/C220_WEBLOOK_25.jpg']

 

这里面有两个动作,第一个动作是获取图片链接,也就是src后指定的内容,另一个动作是,取到信息后,验证信息是否是完整的网址,如果不是标准的uri,则需要进行补全,补全信息来自当前页面地址,然后根据路径计算得出真实地址