
下面代码是在图片网站上截取的,想问下用 Python 爬虫,怎样才能过滤出 images 下面不同 size 的图片 url 呢?
"images": [{ "size": "watermark", "url": "https:\/\/drscdn.500px.org\/photo\/original\/store\/67585293\/m%3D900_k%3D2_b%3D2_dpi%3D300_attachment%3D1_tags%3D1\/e47f93b520c772b2612bef1ff2fa77ae" }, { "size": "280", "url": "https:\/\/drscdn.500px.org\/photo\/67585293\/w%3D280_s%3D1\/a967861eaf97496c9243c9aaccb63502" }, { "size": "560", "url": "https:\/\/drscdn.500px.org\/photo\/67585293\/w%3D560_s%3D1\/90e4feec7585c24a5f1d45b1ee21262b" }, { "size": "600", "url": "https:\/\/drscdn.500px.org\/photo\/67585293\/w%3D600_s%3D1\/aa4e4a084ea37fa1ce8a82c3865ce43a" }, { "size": "115", "url": "https:\/\/drscdn.500px.org\/photo\/67585293\/w%3D115_h%3D115_s%3D1\/8fae531a821e375dda4f4938b0b5829f" }, { "size": "160", "url": "https:\/\/drscdn.500px.org\/photo\/67585293\/w%3D160_h%3D160_s%3D1\/0e4a9829237dd66700a27ebed6d8f761" }, { "size": "2048", "url": "https:\/\/drscdn.500px.org\/photo\/67585293\/w%3D2048\/d8142c223fa99fc99b9bd4a1b44462eb" }], 1 yahoo21cn 2016 年 2 月 19 日 正则 |
2 mgna17 2016 年 2 月 19 日 比如这样么 re.findall(r'(?<=url\":\s\").+?(?=\}\,)', your_text) |
3 jarlyyn 2016 年 2 月 19 日 首先,这个明显是 json 的一部分。 其次, 500px 自己就有公开的 api 。 |
4 Ncer 2016 年 2 月 19 日 这种格式的用 json 解析一下 |
5 annielong 2016 年 2 月 19 日 明显是 json ,格式化一下后输出就可以了,不用正则吧 |
7 magicdawn 2016 年 2 月 19 日 拿到 json 字符串, 找到 `"images": [` 左大括号 index, 计算出右大括号 index, slice, json.load |
8 magicdawn 2016 年 2 月 19 日 中括号... |
10 imn1 2016 年 2 月 19 日 正则执行效率高, json 开发效率高 如果 json 不是单独一个文件或 XHR ,而是嵌入在页面或某个 js 里面,建议还是正则快 |
11 Frapples 2016 年 2 月 19 日 import json img_info = json.loads(json_str) # json_str 就是你抓下来的字符串,从你贴的内容来看是 json 格式的。用此函数解析成 python 的数据结构。 # 然后你可以 print(img_info)看看 |
12 mikezhang0515 2016 年 2 月 19 日 把\/替换成 / 然后匹配 url |