图片真实地址提取
来源:互联网 发布:淘宝网商城官方网站 编辑:程序博客网 时间:2024/04/28 11:56
最近学习爬虫从网上批量下载图片,但是在从百度搜索的页面下载图片时遇到的难题。搜索到的图片地址已被加密。通过搜索资料得知,加密后的字符串除了特殊符号,其他与真实字符一一对应,于是尝试通过大量对比,找出图片地址的加密映射。
首先需要获得加密地址和真实地址,在访问的第一个页面能从网页源代码中获得真实地址。于是提取了第一个页面的真实地址和加密后的地址
def make_url_list(): source_url = [] url = 'http://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fr=&sf=1&fmq=1449826069912_R&pv=&ic=0&nc=1&z=&se=&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&word=高清动漫图片' r = requests.get(url) r.encoding = 'utf-8' for index, line in enumerate(re.findall(r'"objURL":"(.*?)"', r.text)): # print('index:{} line:{}'.format(index,line)) source_url.append(line) after_url = [] url = 'http://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E9%AB%98%E6%B8%85%E5%8A%A8%E6%BC%AB%E5%9B%BE%E7%89%87&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&word=%E9%AB%98%E6%B8%85%E5%8A%A8%E6%BC%AB%E5%9B%BE%E7%89%87&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&pn=0&rn=30&gsm=200003c' r = requests.get(url) r.encoding = 'utf-8' for index, line in enumerate(r.json()['data']): try: # print('index:{} line:{}'.format(index,line['objURL'])) after_url.append(str(line['objURL'])) except KeyError: break # after_url.append(str(line['objURL'])) url_list = [] for source, after in zip(source_url, after_url): url_list.append([source, after]) return url_list
code_dict={}code_dict['_z&e3B']='.'code_dict['AzdH3F']='/'code_dict['_z2C$q']=':'
制作一个替换函数,将加密字符串中的符号恢复
def changecode_url(text, trans_dict): trans_dict = {re.escape(key):value for key,value in trans_dict.items()} pattern = re.compile('|'.join(trans_dict.keys())) text = pattern.sub(lambda m: trans_dict[re.escape(m.group(0))], text) return text
def extract_dict(url_list=url_list,trans_dict = trans_dict): # url_list每个元素的第一个为原链接,第二个为混淆链接 for url in url_list: url[1]=changecode_url(url[1], code_dict) # 去掉特殊符号 for key,value in zip(url[1], url[0]): trans_dict[key] = value
通过对比30组地址,获得了一个覆盖大部分字符映射关系的字典。之后进行下载中对下载失败的地址进行检查,补充映射关系。
0 0
- 图片真实地址提取
- 提取页面图片地址
- 提取文章内容中的图片地址
- ASP.NET隐藏图片的真实地址
- asp.net 隐藏图片的真实地址
- 正则表达式提取html图片地址
- 从数据库中提取图片地址
- .net提取内容中的图片地址
- ASP提取字段中的图片地址
- 如何提取html文本中的图片地址
- ASP编程代码:隐藏图片的真实地址(转)
- 安卓根据uri获得图片真实地址
- 从图库选择图片后根据Intent获取真实地址
- 【分享】优酷视频真实视频地址提取(类硕鼠下载器api)
- 使用php代码从网页中提取有效图片地址
- Delphi提取网页文件图片地址示例源码
- 提取FCK编辑器中上传的图片地址
- PHP提取字符串中的图片地址[正则表达式]
- 能够用手指滑动的焦点轮播图——swipe.js
- 绑定Service
- Jena读取Mysql数据的本体数据
- 关于selector中图片显示的一个小问题
- Swift 值类型和引用类型
- 图片真实地址提取
- leetcode 84. Largest Rectangle in Histogram
- 图像的直方图
- Myeclipse10不支持编译器1.7
- GET请求特殊字符处理
- 跟着Google学Android —— 2.1 孩子再多 也要兼顾 —— 支持不同设备
- Infopath——打开的item点击close后跳转到我们需要的页面
- iOS面试必看,最全梳理
- MongoDB分片测试