网页爬虫抓取百度图片(本次做的爬虫实例比较简单,晚上回来的时间用来码代码 )

优采云 发布时间: 2021-09-16 06:16

  网页爬虫抓取百度图片(本次做的爬虫实例比较简单,晚上回来的时间用来码代码

)

  最近,我在互联网上看到了文章爬虫的引入。我觉得很有趣。搬家总比搬家好。晚上回来的时间只是用来编码的~~

  网络爬虫:根据一定的规则对网页上的信息进行爬网,通常先爬网到一些URL,然后将这些URL放入队列中进行反复搜索。我不知道是DFS还是BFS。我在这里不研究算法,因为爬虫示例相对简单。我实现了一个java小程序来抓取百度页面的徽标

  事实上,爬虫的作用远远大于此。此示例仅供介绍性参考

  首先,让我们分析一下,在本例中,抓取图片的过程只不过是以下步骤:

  1.访问百度主页获取网页返回的信息

  2.get有用信息(这里是网页的源代码或所有图片的URL)

  3.访问所有图片的URL

  4.可以以流的形式本地存储

  通过以上步骤,很容易编写一个简单的爬虫程序。下面是代码中带有注释的代码

<p>import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.ArrayList;

import java.util.List;

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class Bug {

String url = "http://www.baidu.com";//待爬取的URL

//获取url页面的源码;

public String ClimbBug() throws IOException{

URL accessurl = new URL(url);

HttpURLConnection conn = (HttpURLConnection) accessurl.openConnection();

conn.connect();//连接

InputStream is = null;

if(conn.getResponseCode()==200){//判断状态吗是否为200,正常的话获取返回信息

byte[] b=new byte[4096];

is = conn.getInputStream();

StringBuilder sb = new StringBuilder();

int len=0;

while((len=is.read(b))!=-1){

sb.append(new String(b,0,len,"UTF-8"));

}

return sb.toString();//返回百度页面源代码,这里跟网页上右键查看源代码的效果一致

}

return "Error";

}

//获取图片页面URL

public List regex() throws IOException{

System.out.println(new Bug().ClimbBug());

String regex = "src[\\s\\S]*?>";//匹配所有图片的URL

List list = new ArrayList();

Matcher p = Pattern.compile(regex).matcher(new Bug().ClimbBug());

while(p.find()){

list.add(p.group());

}//匹配到放入我们的URLlist

return list;

}

//下载图片到本地或者结合数据库做其他想做的操作;

public void download(List list) throws IOException{

InputStream is =null;

OutputStream os =null;

for (int i=0;i

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线