java爬虫抓取网页数据(利用Java模拟的一个程序,提取新浪页面上的链接)
优采云 发布时间: 2022-04-11 17:29java爬虫抓取网页数据(利用Java模拟的一个程序,提取新浪页面上的链接)
什么是网络爬虫?
网络爬虫也称为蜘蛛。网络蜘蛛通过网页的链接地址搜索网页。它从网站的一个页面(通常是首页)开始,读取网页的内容,找到网页中的其他链接地址,然后通过这些链接地址找到下一个网页,以此类推, 直到这个 网站 的所有网页都被爬取完毕。如果把整个互联网看成一个网站,那么网络蜘蛛就可以利用这个原理爬取互联网上的所有网页。因此,为了在网络上抓取数据,不仅是爬虫程序,还有一个服务器,它可以接受“爬虫”发送的数据,并对其进行处理和过滤。爬虫爬取的数据量越大,对服务器的性能要求就越高。.
网络爬虫实现原理
根据这个原理,编写一个简单的网络爬虫程序,这个程序的作用是获取网站发回的数据,并提取其中的URL。我们将获取的 URL 存储在一个文件夹中。只需从 网站 获得的 URL 进一步循环,即可获取数据并从中提取其他数据。这里就不写了,只是模拟一个最简单的原理。实际的 网站 爬虫远比这复杂。太多了,无法深入讨论。除了提取URL之外,我们还可以提取我们想要的各种其他信息,只要我们修改过滤数据的表达式即可。下面是一个用Java模拟的程序,用来提取新浪网页上的链接,并保存在一个文件中
源代码
import java.io.BufferedReader;<br />import java.io.FileWriter;<br />import java.io.IOException;<br />import java.io.InputStreamReader;<br />import java.io.PrintWriter;<br />import java.net.MalformedURLException;<br />import java.net.URL;<br />import java.net.URLConnection;<br />import java.util.regex.Matcher;<br />import java.util.regex.Pattern;<br /><br />public class WebSpider {<br /> public static void main(String[] args) {<br /> URL url = null;<br /> URLConnection urlconn = null;<br /> BufferedReader br = null;<br /> PrintWriter pw = null;<br /> String regex = "http://[\\w+\\.?/?]+\\.[A-Za-z]+";<br /> Pattern p = Pattern.compile(regex);<br /> try {<br /> url = new URL("http://www.sina.com.cn/");<br /> urlconn = url.openConnection();<br /> pw = new PrintWriter(new FileWriter("e:/url.txt"), true);//这里我们把收集到的链接存储在了E盘底下的一个叫做url的txt文件中<br /> br = new BufferedReader(new InputStreamReader(<br /> urlconn.getInputStream()));<br /> String buf = null;<br /> while ((buf = br.readLine()) != null) {<br /> Matcher buf_m = p.matcher(buf);<br /> while (buf_m.find()) {<br /> pw.println(buf_m.group());<br /> }<br /> }<br /> System.out.println("获取成功!");<br /> } catch (MalformedURLException e) {<br /> e.printStackTrace();<br /> } catch (IOException e) {<br /> e.printStackTrace();<br /> } finally {<br /> try {<br /> br.close();<br /> } catch (IOException e) {<br /> e.printStackTrace();<br /> }<br /> pw.close();<br /> }<br /> }<br />}<br />
在 Eclipse 中运行的结果
底部显示收购成功!接下来我们到E盘根目录下找到url.txt。看看有没有这个文件
接下来,我们打开txt文件,找到一系列URL链接。这些都是我们爬取新浪首页得到的网址
我们只需复制一个 URL 并在浏览器中打开它。看看效果。例如,我们使用这个
OK 没有问题。图片都出来了。表示我们抓取的网址是有效的
至此,我们的简单Demo已经展示完毕。