JAVA爬虫基础学习20191

编程入门 行业动态 更新时间:2024-10-11 23:17:18

JAVA<a href=https://www.elefans.com/category/jswz/34/1770264.html style=爬虫基础学习20191"/>

JAVA爬虫基础学习20191

专门收集互联网信息的程序叫作网络爬虫

通用采集器

定制开发的采集器

基本功能

下载网页

遍历URL地址

高效遍历

遍历算法

  • 广度优先
  • 深度优先
  • 最佳优先

爬虫的危险

  • 相对人而言,它有更快的检索速度和更深的层次, 所以它有可能使一个站点瘫痪
  • 做一个有礼貌的爬虫
  • 多线程爬虫会开启多个线程来爬取,使用很多session进行连接,造成类似于攻击的效果,别人的正常业务无法进行了
  • 爬虫还可以拿到别人不愿意公开的数据,即隐私类的信息
  • 一般情况下,爬虫会可以爬取站下所有不需要口令就可以访问的页面
    – 亮明身份,告诉服务器自己是爬虫
    – 有节制和限制地进行爬取操作
    – 让抓取任务平均到时间段上,时间段扩大一些更好

理解网站地址

Robots协议

  • 网站隐私保护
    – robots.txt自觉文件
    – 设置Robots Meta标签
  • 爬虫就是自动获取知识的第一步
  • 爬虫在某种程度上就是一个http客户端应用,相当于一个浏览器做的一部分事情

HttpCore的协议细节

  • HTTP
  • TCP
  • DNS
  • UDP
  • IP
  • 网络接口1,2,3

协议

  • 在java中,一旦和被采集的web服务器建立连接,对网络资源的操作就好象对本地文件的操作一样简单了。
  • 网络中使用url来标出网络资源的位置
  • 直接用URL类和存入网页的服务器建立连接,获取网页源代码
  • URL
    – 协议名
    – 主机名:端口号
    – 资源路径
  • HTTP的8种可能的请求方式,爬虫常用的有3种
    – GET
    – POST
    – HEAD
  • HTTP的请求格式
<request line> 请求行
<headers> 头信息
<blank line> 空行
[<request-body>] 主体
  • HTTP的头信息组成
    – 1 通用头
    – 2 请求头
    – 3 响应头
    – 4 实体头

服务器返回的响应第一行就包括状态码

  • 3个数字组成
  • 用于识别web服务器处理的情况
  • 第一个数字决定了响应的类别,后两个是大类下的小类分类
1xx 信息响应类,表示接收了在处理中
2xx 处理成功响应类,正在理解,接受
3xx 重定向类,进一步处理
4xx 客户端错误,请求错了
5xx 服务器错误,服务器不能正确执行该请求

使用HttpClient下载网页

  • 开源项目HttpClient
    – 基包:httpcore-4.1.2.jar
    – 应用包:httpclient-4.1.2.jar
    – 日志包:commons-logging-1.1.1.jar

抓取暗网

  • 没有入口可以用来遍历所有信息的网站对于爬虫来说就是暗网
  • 一般形式是:前台是一个表单,获取参数后搜索得到结果页,它们是由后台数据库动态产生的
  • 一般有同一个模板
  • PhantomJS,是一个基于WebKit的服务器端JS的运行环境
  • Selenium是一浏览器外挂,可以使用它让浏览器自动下载某个网页或者填入登录密码等信息
    – Selenium-WebDriver直接调用本机的浏览器,执行自动化任务—常用于自动化测试
    – 核心代码由javascript来完成,可以运行在firefox或ie上
    – 提供有Selenium java API
    – 如果是firefox浏览器,就直接调FirefoxDriver即可
    – 而ChromeDriver比FirefoxDriver更稳定

语言 ISO 8859系,全是欧系语言

  • ISO 8859-1 Latin-1 西欧语言
  • ISO 8859-2 Latin-2 中欧
  • ISO 8859-3 Latin-3 南欧
  • ISO 8859-4 Latin-4 北欧
  • 斯拉夫语
  • 阿拉伯语
  • 希腊语
  • 希伯来语
  • 北日耳曼语
  • 泰语
  • 波罗的语

汉字编码

  • GB2312 简体字
  • BIG5 繁体字
  • GBK 简繁和一些符号
  • GB18030 汉字大一统标准

网页有编码,还要进一步识别网页中使用的语言

  • 网页编码转换为字符串编码
  • 网页中的字符可能被转义成英文字符表示

使用Crawler4j,是一个单机版爬虫软件

更多推荐

JAVA爬虫基础学习20191

本文发布于:2024-02-07 07:03:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1754150.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:爬虫   基础   JAVA

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!