开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop框架搭建):爬虫介绍-css-js-html等介绍】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/670/detail/11621
爬虫介绍-css-js-html等介绍
内容简介:
一、html介绍
二、js、png、jpg介绍
三、爬虫总结
一、html介绍
上节把 Queryao 的代码详细地介绍了一遍,接下来再往下看 html的,其代码如下所示:
public static void spiderHtml() throws Exception {
//1.指定目标网站
String url = “http://192.168.2.141/B2C40/modules/bookingnew/main/flightSelectDirect.html”
;
//2.发起请求
HttpPost httpPost = new HttpPost(url));
//3.设置请求次数
httpPost.setHeader(
“
Time-Local
”
,getlocalDateTime());
//httpPost.setHeader(
“
Request
”
,
”
POST /B2C40/query/jaxb/direct/query.ao.HTTP/
httpPost.setHeader(
“
Request Method
”
,”POST“);
httpPost.setHeader(
“
Content-Type
”
,
“
application/x-www-form-urlencoded;charset=UTF-8);
httpPost.setHeader(
“
Refer
”
,
“http://b2c.csair.com/B2C40/modules/bookingnew/main/flightSelectDirect;
+ getGoTime() +
“
&at=i&at=0&it=0
”
);
httpPost.setHeader(
“
Remote Address
”
,
“
192.168.2.1
”
);
httpPost.setHeader(
“
User-Agent
”
,
“
Mozilla/5.0(Windows NT 10.0; Win64; X64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/63.0.3239.132
httpPost.setHeader(
“
Time-Iso8601
”
,getISO8601Timestamp(;
httpPost.setHeader(
“
Server Address
”
,
”
243.45.78.132
”
);
httpPost.setHeader(
“
Cookie
”
,
“
JSESSIONID=882121159357898CA6112554Caaaaa150404198801193324bbbbb F44321E;sid=b5cc11e02e154ac5b0f36
+ getGoTime()
+
“
%3B%E5%B9%BF%E5%B7%9E-%E6%88%90%%E9%83%BD%3B1%2c0%2C0%3B%26;JSESSIONID=882121159357B98CA6112554
”
+ getGoTime() +
“
)
”
);
//4.设置请求参数
ArrayList<BasicNameValuePair> paramters = new ArrayList<BasicNameValuePair>();
Parameters
.add(new BasicNameValuePair(
“
json
”
,
“
{\
”
depcity\
”
:\
”
CAN\
”
,\
”
arrcity\
”
:\
”
WUH\
”
,\
”
flightdate\
”
:\
”
20180220\
”
,\
”
adultnum\
”
:\
”
1\
”
,
httpPost.setEntity(new UrlEncodeFormEntity(parameters));
//5.发送请求
CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response = httpClient.execute(httpPost);
//6.获取返回值
System.out.println(response != null);
}
其里面设置 URL 、 httpPost 、 Time_local 、 Request 、 Request method 、 Content-Type ,和上面的 Queryao 都是一模一样的,只不过区别在于 url 会发生变化,可以看到 url 里面请求的 IP 加了一个路径,其格式是 HTML 格式,而上面的 Queryao 里面请求的 ip的格式是 Queryao ,是以 .ao 为格式的路径,除此之外其他的内容与 Queryao 大致都相似,所以只需要搞定 Queryao 一个内容,其他的都一样,在这里就不重复了。
二、js、css、jpg、png介绍
1、js介绍
接下来看一下 Js 的, js 跳过来也是一样的 url 加 ip 加路径,只不过后面格式变成了 .js ,而下面的 Time_local 、 Request、Request method 、 Content-Type ,还有 Referer 都和之前的Queryao 一样。
2、css介绍
接着看 css ,也只有 url 是加 IP 加路径,格式是 .css 格式,其他的也都还是和 Queryao 一样的。
3、png介绍
接下来看 png , png 跳过来也是一样的 url 加 ip 加路径,只不过后面格式变成了 .png ,而下面的 Time_local 、 Request 、Request method 、 Content-Type ,还有 Referer 都和之前的Queryao 一样。
4、jpg介绍
接下来看 jpg ,也只有 url 是加 IP 加路径,格式是 .jpg 格式,其他的也都还是和 Queryao 一样的。
三、爬虫总结
实际上一个 for 循环里面走了六步,而这六步里面几乎每一步里面的95%以上的代码都一样,只有一小部分,比如 Queryao 的 ip 格式是以 .queryao 结尾, html 的 ip 格式最后以 .html 结尾,以及下面的 js 、 css 、 png 、 jpg 都有相应的结尾格式,其每一个循环都会把数据打入 kafka 里面,来看一下打入 kafka 里面的数据,
如下图所示:
上图中分别是 js 、 css 、 html 、 png 、 jpg 的数据。这些有了之后反爬虫也就介绍完了,也就是每一个循环会跑到6个数据,一次循环就把这六个数据请求的相应参数就全部都采集到了,采集到并且发送到后台,发送到 kafka 里面,上述是单程的。
而往返的其实是一样的,有去的时间,有回的时间,然后其他的都一样,因为逻辑都一样,只不过往返里面的 http referer 变成了两个日期,而其他的和单程的是一模一样的,就不做介绍了。
到这里为止就把反爬虫项目所需要用到的爬虫介绍完了,在讲义当中,前面是请求参数,后面是国内单程的爬虫查询,然后有很多代码,这个代码就是上述的这些代码,还有一个往返的爬虫,爬虫大概是有哪些内容?拿过去以后,只需要将访问路径里面的 IP 换成 nginx 里面 IP 就可以了,其他的基本上都不用改,然后直接点击右键运行就可以了,这就是爬虫的介绍呢。