有些时候你想在你的应用需要用到一些背景图片,但是没有图片啊,没有图片啊,没有图片啊。。。。。
当然你可以在应用内内置很多的精美图片,然后就造成了一些问题:你的apk变得贼大,其次想换一些新的图片只能在下一次应用更新。
或者搞一个服务器,用网络请求去访问服务器的图片,那么问题来了:谁去搞服务器,服务器的图片哪里来的。相信很多android端盆友对搭建服务器还是比较陌生的(比如我)。
于是我想了个可以投机取巧的办法,用别人家的图片,对,没有错,虽然这种方式有点不要脸,但是我只能这么干了。。。
主体思路如下:
应用http访问网页,获取网页界面,然后用正则将详情图匹配出来,获取到所有图片的url。。。
不多说了,开干吧。
找一个目标网页
首先要确定想要从什么网站上面爬取图片数据,我在github中的一个项目里是爬取的google图片搜索网站的图片数据,这里我从爬取pixabay的图片吧,链接:https://pixabay.com/
了解目标网页的url结构以及参数功能
有的盆友可能说了我没做过前端啊,,,我知道我也没做过,但是没吃过猪肉还没么见过猪跑吗,一点一点摸出来就可以了
比如我在pixabay搜索动物anim,结果如下:
他是通过path的方式去访问的,行,了解,先写一个http请求去访问这个界面,看看拿到的是什么东西,因为本人比较懒,所以直接用okhttp去写网络请求了;
public class PixabayUtils {
public static void search() {
OkHttpClient client = new OkHttpClient.Builder().build();
final Request request = new Request.Builder()
.header("User-Agent"
, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36")
.url("https://pixabay.com/images/search/anim/")
.build();
client.newCall(request)
.enqueue(new Callback() {
@Override
public voi