使用Http访问网络并且使用正则获取需要用到的图片链接
来源:互联网 发布:网络信息安全漫画 编辑:程序博客网 时间:2024/06/15 23:04
下面是我在Fragment中做的访问网络操作,大家不必理会,只要看getDatas();获取数据方法即可,而在getDataS方法的最后调用了ParseDatas()使用正则表达式
获取想要img路径。
代码中的stringUri是百度图片中一个美女分类的路径,我们对该路径进行网络访问,并且进行我们的学习。在这里谢谢百度的学习资料(如果侵权,请立刻告知,我将删除)
(唠叨几句,各位可以跳过)
作为开发的学生,没有后台感觉好郁闷,找了很久的api没有找到,只好用正则表达式获取想要的图片了。
其实人类还是很聪明的。遇到困难,就迎难而上。
先上效果图:
没图说街霸
这就是正则表达式,获取到的Img路径,是不是有点激动呢?赶紧get起来吧
package com.ityingli.www.mynews.Pager;import android.os.Bundle;import android.support.design.widget.TabLayout;import android.support.v4.app.Fragment;import android.util.Log;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import com.ityingli.www.mynews.R;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.util.regex.Matcher;import java.util.regex.Pattern;public class VideoFragment extends Fragment { String TAG = "VideoFragment"; StringBuffer stringbuffer = new StringBuffer(); @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.layout_video,container,false); /* *通过http连接网路获取网页源码 * */ getDatas(); /* * 用正则表达式抓取源码中的图片 * */ //parseDatas(); return view; } /* * 正则获取所需要的数据 * */ private void parseDatas() { //正则//(http:|https:){1}(//){1}.*?.jpg 正则表达式抓取图片网址////解释出数据之后,发现这个正则式是有漏网之鱼的//这里优化,一个网址中间是没有双引号的 (http:|https:){1}(//){1}((?!").)*?.jpg//注解:.*? 代表0个或者多个非\n的任意字符(并且是非贪婪模式)//对于正则表达式中?!的理解:我目前的理解是不想被捕获//String reg = "(http:|https:){1}(//){1}.*?.jpg"; String reg = "(http:|https:){1}(//){1}((?!\").)*?.jpg"; Pattern pattern = Pattern.compile(reg); Matcher mat= pattern.matcher(stringbuffer); while(mat.find()){ Log.e(TAG, "parseDatas: "+mat.group()); } } /* * 获取数据 * */ private void getDatas() { new Thread(){ public void run(){ String stringUrl = "https://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=index&fr=&hs=0&xthttps=111111&sf=1&fmq=&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&word=%E7%BE%8E%E5%A5%B3&oq=%E7%BE%8E%E5%A5%B3&rsp=-1"; //String stringUrl = "http://open.lovebizhi.com/pengyou.php#"; try { //url URL url = new URL(stringUrl); //打开连接 HttpURLConnection connect = (HttpURLConnection)url.openConnection(); //设置请求方式 connect.setRequestMethod("GET"); //设置请求时长,超时 connect.setConnectTimeout(8000); //设置读取的时长 connect.setReadTimeout(8000); //获取连接的流 InputStream is = connect.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line = null; //获取内容 while((line = br.readLine())!=null){ stringbuffer.append(line); } /* * 获取到数据,然后就解释数据了 * */ parseDatas(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }.start(); }}
今天6.1祝各位大孩子。节日快乐
如果发现错误,欢迎告知.互相学习,共同进步
阅读全文
0 0
- 使用Http访问网络并且使用正则获取需要用到的图片链接
- 使用HTTP访问网络
- 使用Http访问网络
- 获取网页图片链接(http:/)
- 使用HTTP协议访问网络
- 使用HTTP协议访问网络
- 使用HTTP协议访问网络
- 使用HTTP协议访问网络
- 使用Http协议访问网络
- 使用http协议访问网络
- 使用HTTP协议访问网络
- 使用 HTTP协议访问网络
- Android使用Http访问网络
- 使用Http访问网络(使用Apache HttpClient)
- Android网络访问之http、https、 cookie的使用
- 3.1 使用 HTTP 访问网络的两种方式详解
- 【java】快速访问http网络请求框架QuickHttp的使用
- Android学习使用HTTP协议访问网络
- 535. Encode and Decode TinyURL
- 【队列】之链式存储结构
- Nginx安装
- springboot零侵入配置mybatis插件
- 洛谷 P1731 生日蛋糕
- 使用Http访问网络并且使用正则获取需要用到的图片链接
- [Hackerrank题目选做] Kundu and Tree 组合数学
- 欢迎使用CSDN-markdown编辑器
- uwp开发之Windows.Data.Json解析json
- 计算机组成原理——输入输出系统
- 设计模式->结构型模式->享元模式
- [IMO原题] BZOJ 4915 简单的数字题
- Java实现翻转单链表
- android layout