1.需求及配置
需求:爬取京东手机搜索页面的信息,记录各手机的名称,价格,评论数等,形成一个可用于实际分析的数据表格。
使用Maven项目,log4j记录日志,日志仅导出到控制台。
Maven依赖如下(pom.xml)
1
2
3 org.apache.httpcomponents
4 httpclient
5 4.5.3
6
7
8
9
10 org.jsoup
11 jsoup
12 1.11.2
13
14
15
16
17 log4j
18 log4j
19 1.2.17
20
21
log4j配置(log4j.properties),将INFO及以上等级信息输出到控制台,不单独设置输出文档。
log4j.rootLogger=INFO, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
2.需求分析与代码
2.1需求分析
第一步,建立客户端与服务端的连接,并通过URL获得网页上的HTML内容。
第二步,解析HTML内容,获取需要的元素。
第三步,将HTML内容输出到本地的文本文档中,可直接通过其他数据分析软件进行分析。
根据以上分析,建立4个类,GetHTML(用于获取网站HTML), ParseHTML(用于解析HTML), WriteTo(用于输出文档), Maincontrol(主控).下面分别对四个类进行说明。为使代码尽量简洁,所有的异常均从方法上直接抛出,不catch。
2.2代码
2.2.1GetHTML类
该类包含两个方法:getH(String url), urlControl(String baseurl, int page),分别用于获取网页HTML及控制URL。由于此次爬取的网页内容只是京东上某一类商品的搜索结果,所