首页 > 其他分享 >快速实现网络爬虫做对这几步就行

快速实现网络爬虫做对这几步就行

时间:2022-11-22 10:08:26浏览次数:44  
标签:请求 几步 爬虫 获取 Jsoup HTML httpConnection 就行

什么是网络爬虫?

我们经常听见一些大公司的程序员一直唠叨着“网络爬虫”,那么网络爬虫到底有啥奇特之处?

通俗点讲,网络爬虫就是能够模拟像正常用户那样浏览网页,并且将所需要的页面中的信息保存下来。有些同学认为需要保存自己完全可以手动保存哈,为啥还要区写个程序?其实这就得益于网络爬虫可以进行多线程多任务同时操作,而且不会像人工那样操作疲劳,只要机器不关机可以一直获取数据,不管工作效率和工作体量都远比人工快的多。

爬虫的原理分析

爬取网页的过程大致分成两个步骤:

首先爬取网页html文件  

爬虫的第一步就是要模拟用户浏览网页,获取需要访问的页面。  

模拟用户浏览网页的方法很简单,使用Java类库中的URLConnection类即可,这个类可以发送HTTP请求,并返回请求页的二进制数据,我们只需将返回的二进制数据转换成String类型,这些数据就是请求页的HTML文本!

//设置需要爬取页面的URL
URL url = new URL("http://www.baidu.com");
//建立连接,获取URLConnection对象
URLConnection connection = url.openConnection();
//将URLConnection对象转换成HttpURLConnection对象
HttpURLConnection httpConnection = (HttpURLConnection) connection;
httpConnection.setDoOutput(true);
//获取输出流
OutputStreamWriter out = new OutputStreamWriter(httpConnection.getOutputStream(), "8859_1");
//刷新输出流,然后关闭流
out.flush();
out.close();
//一旦发送成功,用以下方法就可以得到服务器的回应:
String sCurrentLine = "";
String sTotalString = "";
//ResponseCode==200表示请求发送成功! if(httpConnection.getResponseCode()==200){
//获取服务器返回的输入流
InputStream l_urlStream = httpConnection.getInputStream();
BufferedReader l_reader = new BufferedReader(new InputStreamReader(l_urlStream));
while ((sCurrentLine = l_reader.readLine()) != null) {
sTotalString += sCurrentLine + "\r\n";
}
System.out.println(sTotalString);
return true;
}

其次分析html文件抽取其中需要的信息  

当我们获取到请求页的HTML文本之后就需要在一堆HTML标签中将我们所需要的数据抽取出来。这里给大家提供一个很好用的抽取HTML数据的第三方Jar包:Jsoup!

Jsoup提供了getElementById()、getElementById()等方法,我们能够很方便地将指定标签中的数据抽取出来。除此之外,为了方便实现网络爬虫,Jsoup中已经集成了发送HTTP请求的函数,而且将整个发送请求的过程极度地简化,只需两步就能完成,无需再使用HttpConnection类库在发送HTTP请求前进行一系列复杂的设置,并且Jsoup中返回的就是HTML文本,无需再进行二进制转换成HTML文本的操作。代码如下:

//通过Jsoup获取HTML文本
Document doc = Jsoup.connect("http://10.20.100.5:8080/").get();
//获取HTML中所有的tbody标签
Elements tbodys = doc.getElementsByTag("tbody");
//获取tbody标签中所有的td标签
Elements tds = tbodys.get(1).getElementsByTag("td");
//获取td中的文本
tds.get(0).html();

看完这些相信大家对于网络爬虫已经入门了,能够实现一个最简单的爬虫程序,接下来我会带领大家一步步深入,实现一个更加智能、功能更加强大的爬虫!  


标签:请求,几步,爬虫,获取,Jsoup,HTML,httpConnection,就行
From: https://blog.51cto.com/u_13488918/5876286

相关文章

  • 爬虫技术是什么
    爬虫技术是一种自动化程序。爬虫就是一种可以从网页上抓取数据信息并保存的自动化程序,它的原理就是模拟浏览器发送网络请求,接受请求响应,然后按照一定的规则自动抓取互联网数......
  • java桌面端开发为什么没就行起来,大部分人选qt,winform,electron?
    java桌面端开发为什么没就行起来的主要原因是基于Java开发的windows桌面端软件的安装部署运行的不便,绝大多数的windows电脑没有安装Java运行环境,并且基于不同版本Java开......
  • vba爬虫返回数据乱码处理
    vba爬虫返回数据乱码处理FunctionBytesToBstr(strBody,CodeBase)'使用Adodb.Stream对象提取字符串DimobjStreamOnErrorResumeNextSetobjS......
  • python爬虫某东商品销售数据
    经典四步曲:1、查找有效URL,分析是静态数据还是动态数据,分析数据的格式。2、编写python代码,向服务器发送请求,获取数据。3、解析数据4、保存数据importrequestsimportjson......
  • python网页爬虫开局通用示例
    万事开头难,好的开始是成功的一半。步骤:1、导入requests模块,2、get方法(url,timeout,headers等)3、状态判断,4、考虑编码,5、try方法判断异常。importrequests#importtimedef......
  • Java IO 中常用的目录和文件操作,用到的时候从这里拷贝就行了
    文件是操作系统对磁盘上数据的组织形式。文件包括文件路径和文件名,比如:/Users/Calvin/Desktop/demo.txt复制代码文件名的后缀其实是文件名的一部分,文件不一定要有后缀,但是一......
  • python爬虫实战一、爬取酷我音乐榜单并写入txt文件保存到本地
    python爬虫实战一、爬取酷我音乐榜单并写入txt文件保存到本地一、总代码和运行截图#加载需要的库importrequestsfrombs4importBeautifulSoupfromlxmlimportetreef=......
  • python单线程爬虫安装与调试
    信息时代的到来,带给我们海量信息的同时也给我们带来很多有用的价值。如何在这些海量信息池里面找到自己需要的有价值的信息就离不开爬虫技术了,那么在python下如果去部署安装......
  • Python爬虫之旅游景点评论
    目录爬取景点评论准备工作获取HTML页面解析处理worldcloudreference:爬取携程景点评论数据本博客记录一个爬取携程景点评论并制作词云的例子,并且可以很轻易地拓展到多个......
  • Python爬虫实战:批量爬取百度图片
    众所周知,某度本身就是最大的爬虫脚本,那么纯纯的去某个网站找壁纸,还不如去某度图片直接找,瞬间格局打开!话不多说,直接用Python来开发一下此处资源!开发环境&第三方模......