java 爬虫大型教程(一)

写在开始前,既然是大型教程,那就从最初始的环境变量开始搭建说起。

电脑环境:我的电脑是macbook pro,因此系统环境变量配置是和Windows不一样的,如果你的电脑是Windows系统,可以百度下相关环境变量配置。

爬虫框架:使用的是webmagic,这是国内不错的爬虫框架,借鉴于python的scrapy框架。

Java环境搭建

首先提一句,从2019年1月开始更新的版本,jdk8 u201开始对公司用户来说是收费的!!!因此如果你的公司没有向oracle申请购买的话,一定要使用jdk8 u191及其以下的jdk版本,不然oracle是可以告你的公司的哦。当然,如果你是个人学习用的话,那就随便了。

首先我列一下jdk8 u191的下载地址,记得保存好。地址:

https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html

Java的下载安装配置就不说了,实在太基础了,安装成功后.

MacBook-Pro:~ duke$ java -version
java version "1.8.0_191"
Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)

maven环境搭建

1.下载安装包

官方下载地址:https://maven.apache.org/download.cgi

如图:

2.解压指定位置

你可以把maven解压至任何地方,这里我把maven放在了/Users/duke/Documents/Software 这个文件夹里,解压命令不需多言。

我只简单的描述一下maven,Java程序运行需要各种各样的jar包,你可能要费心费力的去处理jar包和环境配置问题,但是使用maven就可以解决这个问题。如果你使用过git,就知道代码首先是要commit本地仓,然后在push到git远程仓。maven是相同的道理,它会有个本地仓,如果java代码中使用了相关jar包,会首先在本地仓寻找,如果没找到,会向远程仓请求,下载到本地仓供使用。

3.环境配置

① 打开终端 ,输入vim ~/.bash_profile
② 输入i进入编辑模式,然后输入 Maven 的环境变量
export M2_HOME="/Users/duke/Documents/Software/apache-maven-3.6.0"
export PATH="$M2_HOME/bin:$PATH"
③ 编辑完后,按 esc 退出编辑,并输入 :wq 保存并退出。
④ 输入 source ~/.bash_profile 使环境变量生效。
⑤ 输入 mvn -v 查看 Maven 否安装成功。

4.更换maven下载源

① 用IDEA或Eclipse打开/Users/duke/Documents/Software/apache-maven-3.6.0/conf/settings.xml
② 找到mirrors元素(150行左右), 在它里面添加子元素mirror
<mirror><id>nexus-aliyun</id><mirrorOf>*</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

IDEA使用maven创建简单的爬虫项目

第一步:只是想使用maven来下载相关包,所以不用选中create from archetype,点击next,如下图:

第二步:GroupId(一般填反转后公司域名)和ArtifactId(项目名)还有Version,这三个属性目的是标识你的项目的唯一性,点击next,如下图:

第三步:以上配置按需修改,一般保持默认,很简单就是保存项目的路径,点击Finish,如下图:

第四步:在接下来的面板中选择本地的maven/Users/duke/Documents/Software/apache-maven-3.6.0

(如果是第一次创建项目,会有预创建过程,控制台会显示在从阿里云下载模版,去喝杯咖啡等待即可)

第五步:进入了首页,原始状态如下图:

第六步:添加坐标:

   <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><dependency><groupId>us.codecraft</groupId><artifactId>webmagic-core</artifactId><version>0.7.3</version></dependency><dependency><groupId>us.codecraft</groupId><artifactId>webmagic-extension</artifactId><version>0.7.3</version></dependency><dependency><groupId>us.codecraft</groupId><artifactId>webmagic-extension</artifactId><version>0.7.3</version><exclusions><exclusion><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build>

然后点击右下角import changes,加载完成后,右下角import changes消失,如下图:

第七步:配置log4j.properties

我按照我的习惯,新建一个config文件夹,将其标记为source root

配置log4j

# priority  :debug<info<warn<error
#you cannot specify every priority with different file for log4j
#log4j.rootLogger=debug,stdout,info,debug,warn,error
#按照你的需要将输出日志等级
log4j.rootLogger=warn,error  #console
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= [%d{yyyy-MM-dd HH:mm:ss a}]:%p %l%m%n
#info log
log4j.logger.info=info
log4j.appender.info=org.apache.log4j.DailyRollingFileAppender
log4j.appender.info.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.info.File=./log/info.log
log4j.appender.info.Append=true
log4j.appender.info.Threshold=INFO
log4j.appender.info.layout=org.apache.log4j.PatternLayout
log4j.appender.info.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n
#debug log
log4j.logger.debug=debug
log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender
log4j.appender.debug.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.debug.File=./log/debug.log
log4j.appender.debug.Append=true
log4j.appender.debug.Threshold=DEBUG
log4j.appender.debug.layout=org.apache.log4j.PatternLayout
log4j.appender.debug.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n
#warn log
log4j.logger.warn=warn
log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender
log4j.appender.warn.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.warn.File=./log/warn.log
log4j.appender.warn.Append=true
log4j.appender.warn.Threshold=WARN
log4j.appender.warn.layout=org.apache.log4j.PatternLayout
log4j.appender.warn.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n
#error
log4j.logger.error=error
log4j.appender.error = org.apache.log4j.DailyRollingFileAppender
log4j.appender.error.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.error.File = ./log/error.log
log4j.appender.error.Append = true
log4j.appender.error.Threshold = ERROR
log4j.appender.error.layout = org.apache.log4j.PatternLayout
log4j.appender.error.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss a} [Thread: %t][ Class:%c >> Method: %l ]%n%p:%m%n

新建log文件夹存放日志(这只是本地测试,如果生产中可以将其流入elk)

ok,所有配置完成,可以书写爬虫代码了!

java 爬虫大型教程(一)相关推荐

  1. JSOUP 教程—— Java爬虫,简易入门,秒杀htmlparser

    转载自 JSOUP 教程-- Java爬虫,简易入门,秒杀htmlparser 关于爬虫,之前一直用做第一个站的时候,记得那时候写的 爬虫  是爬sina 的数据,用的就是 htmlparser  可 ...

  2. Java爬虫之JSoup使用教程

    title: Java爬虫之JSoup使用教程 date: 2018-12-24 8:00:00 +0800 update: 2018-12-24 8:00:00 +0800 author: me c ...

  3. Java 爬虫 菜逼教程 00

    因为自己是个菜逼,看一些大咖们写的java爬虫跨度太大很吃力,所以本教程手把手教起. 用的是 eclipse 01.(假设你的workspace是在D盘下面,即有 D:\workspace\)首先 新 ...

  4. java爬虫教程 百度云_java视频教程java爬虫实战项目httpclient hbase springmvc solr

    资源内容: java视频教程java爬虫实战项目httpclient hbase springmvc solr|____猫了个咪-更多IT精品课程.html|____猫了个咪--it视频论坛.url| ...

  5. Java 并发/多线程教程(四)-并发模型

    本系列译自jakob jenkov的Java并发多线程教程(本章节部分内容参考http://ifeve.com/并发编程模型),个人觉得很有收获.由于个人水平有限,不对之处还望矫正! 并发系统可以有多 ...

  6. python java 爬数据_如何用java爬虫爬取网页上的数据

    当我们使用浏览器处理网页的时候,有时候是不需要浏览的,例如使用PhantomJS适用于无头浏览器,进行爬取网页数据操作.最近在进行java爬虫学习的小伙伴们有没有想过如何爬取js生成的网络页面吗?别急 ...

  7. python3爬虫入门教程-总算懂得python3.4爬虫入门教程

    Python是一款功能强大的脚本语言,具有丰富和强大的库,重要的是,它还具有很强的可读性,易用易学,非常适合编程初学者入门.以下是小编为你整理的python3.4爬虫入门教程 环境配置:下载Pytho ...

  8. 学习笔记之Java程序设计实用教程

    Java程序设计实用教程 by 朱战立 & 沈伟 学习笔记之JAVA多线程(http://www.cnblogs.com/pegasus923/p/3995855.html) 国庆休假前学习了 ...

  9. java爬虫的2种爬取方式(HTTP||Socket)简单Demo(一)

    转载自 java爬虫的2种爬取方式(HTTP||Socket)简单Demo(一) 最近在找java的小项目自己写着玩,但是找不到合适的,于是写开始学一点爬虫,自己也是感觉爬虫比较有趣.这里自己找了一个 ...

  10. Java Concurrency Essentials教程

    课程大纲 并发一直是开发人员面临的挑战,编写并发程序可能非常困难. 引入并发性时,可能会发生很多事情,并且系统的复杂性会大大增加. 但是,编写健壮的并发程序的能力是开发人员的必备工具,并且可以帮助构建 ...

最新文章

  1. Spark读取Parquet格式的数据为Dataframe
  2. 20172311《程序设计与数据结构》第八周学习总结
  3. 第三次学JAVA再学不好就吃翔(part75)--集合概述
  4. 博弈-sg函数的原理和优化(hdu-1536)
  5. Serverless 在大规模数据处理中的实践
  6. 项目管理学习总结(5)——产品开发过程中各角色职责说明和技能要求
  7. MineCraft note
  8. java网上销售外文文献_基于java网上购物论文英文的参考文献欣赏
  9. 简单查询多个D速物流,并分析未签收延误的单号
  10. ISP Pipeline 黑电平 以及 线性化
  11. 教你用Python如何完成一个查票系统实现123006自动抢票啦~
  12. windows下mysql免安装配置
  13. 面试问题总结——关于OpenCV
  14. 关于vs在.cpp提取头文件运行的时候一直报错“xx函数主体重定义”
  15. 如何将数据设计成报表模板
  16. neovim安装 vim-plug插件管理器安装
  17. SpringCloud:网关getway 路由转发
  18. CSS如何实现文字两端对齐
  19. acm新手小白必看系列之(5)——枚举进阶例题精讲
  20. C# 之 随机数应用 -- 洗牌算法

热门文章

  1. 【学习笔记】软考中级【数据库系统工程师】下午题技巧
  2. Ubuntu 18.04 安装 Moodle
  3. 使用java下载东西如何优化下载网速
  4. vc2010以及VS2019安装使用教程
  5. 科技爱好者周刊(第 148 期):微增长时代
  6. PHP将swf转为gif,swf怎么转换成gif 怎么把swf转换成gif
  7. 读书笔记之语法语料库和语义知识库
  8. jersey子资源api使用和源码分析
  9. 数值计算方法matlab课后答案,《现代的数值计算方法matlab版》习题解答.pdf
  10. unity串口 连接多个串口崩溃_必学DB9串口+3种连接方式