2021.12.20(第二周) 实习周记lzhuan
文章目录
- 第二周 实习任务
- 一、服装网站热榜爬虫
第二周 实习任务
- 服装网站热榜爬虫,按照【爬虫库表结构】储存数据。
一、服装网站热榜爬虫
这次安排的任务使用Java做爬虫,由于没有接触过爬虫方面的知识先对爬虫做一些了解再进行任务。。。
1.1 使用jsoup
- 获取p标签中的内容
<dependencies><!-- https://mvnrepository.com/artifact/org.jsoup/jsoup --><dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.14.2</version></dependency></dependencies>
public class reptile {public static void main(String[] args) {Document document = null;try {//连接目标站点,get静态html代码document = Jsoup.connect("https://www.runoob.com/js/js-tutorial.html").get();//获取所有的元素divElements elements = document.select("div");//遍历divfor (int i = 0; i < elements.size(); i++) {//得到div中p标签的文本String title = elements.select("p").get(i).text();//打印p标签中的内容System.out.println(title);}} catch (IOException e) {e.printStackTrace();}}
}
结果:
1.2 使用HttpClient
HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
以下列出的是 HttpClient 提供的主要的功能,要知道更多详细的功能可以参见 HttpClient 的官网:
(1)实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)
(2)支持自动转向
(3)支持 HTTPS 协议
(4)支持代理服务器等
<dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.8</version>
</dependency>
public class reptile {public static void main(String[] args) throws Exception{//1、生成httpClient,相当于该打开一个浏览器CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;//2、创建get请求,相当于在浏览器地址栏输入网址HttpGet request = new HttpGet("https://www.runoob.com/");try{//3.执行get请求,相当于在输入地址栏后敲回车键response = httpClient.execute(request);//4.判断响应状态为200,进行处理if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {//5、获取响应的内容HttpEntity httpEntity = response.getEntity();String html = EntityUtils.toString(httpEntity, "utf-8");System.out.println(html);}else {//6、如果返回状态不是200,比如404(页面不存在)等,根据情况做处理,这里略System.out.println("返回状态不是200");System.out.println(EntityUtils.toString(response.getEntity(), "utf-8"));}}catch (Exception e){e.printStackTrace();}finally {//7、关闭对象HttpClientUtils.closeQuietly(response);HttpClientUtils.closeQuietly(httpClient);}}
}
- 有部分网站会检测爬虫,这时候需要解决反爬虫,通常情况下对请求头进行伪装
// 2.创建get请求,相当于在浏览器地址栏输入 网址
HttpGet request = new HttpGet(“http://ccaf.51haojob.com/”);
// 设置请求头,将爬虫伪装成浏览器
request.setHeader(“User-Agent”,“Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36”);
public class reptile {public static void main(String[] args) throws Exception{//1、生成httpClient,CloseableHttpClient httpClient = HttpClients.createDefault();CloseableHttpResponse response = null;//2.创建get请求,相当于在浏览器地址栏输入 网址HttpGet request = new HttpGet("http://ccaf.51haojob.com/");//设置请求头,将爬虫伪装成浏览器request.setHeader("User-Agent","Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36");//HttpHost proxy = new HttpHost("27.159.188.152", 3256);//RequestConfig config = RequestConfig.custom().setProxy(proxy).build();//request.setConfig(config);try{//3.执行get请求,相当于在输入地址栏后敲回车键response = httpClient.execute(request);//4.判断响应状态为200,进行处理if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {HttpEntity httpEntity = response.getEntity();String html = EntityUtils.toString(httpEntity, "utf-8");System.out.println(html);}else {//如果返回状态不是200,比如404(页面不存在)等,根据情况做处理,这里略System.out.println("返回状态不是200");System.out.println(EntityUtils.toString(response.getEntity(), "utf-8"));}}catch (Exception e){e.printStackTrace();}finally {HttpClientUtils.closeQuietly(response);HttpClientUtils.closeQuietly(httpClient);}}
}
2021.12.20(第二周) 实习周记lzhuan相关推荐
- 20145233韩昊辰第二周实习实验报告
20145233韩昊辰第二周C语言实习 实习内容 学习使用新系统中的C语言教学,完成25个课时的学习,在虚拟机中完成C语言代码编写与基础C语言知识理解. 因为虚拟机打开不方便,并且使用的是vc6编译的 ...
- 第二周实习小记-----大牛离我们有多远
当我开始写这篇文章的时候,已经下定决心要把我实习期的这些经历写成一个系列文章了.向大牛学习.不管一周做了些什么,都总结一下坚持的写一些东西.且思且行,不管在知识和思想上都会有所收获.所以在文章的最后我 ...
- 12.20今日头条实习面试总结-算法工程师
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/John_xyz/article/details/78884425 </div><d ...
- 2021/12/20 显示动态读秒跳转页面
显示动态读秒跳转页面 1.antdesign 第一种: 读秒3s后跳转 <template><a-button type="primary" @click=&qu ...
- 2021.12.20用ULN2003驱动四线步进电机
经验证,ULN2003与四只PNP三极管.8只4.7K基极上拉电阻组合构成双H桥电路(用八个驱动信号,如果再增加4只4.7K同侧桥基极串接电阻,则可以只用四个驱动信号),还是可以驱动四线两相步进电机.
- 2021.12.20基本RS触发器
RS触发器有与非和或非门两种构成,有时与非门构成的触发器还使用负逻辑. 我们注意到: 1.这两种RS触发器的RS对应的Q和Q非位置并不相同,这是为了保持R作为复位端,S作为置位端. 2.与非门构成的R ...
- 20155327《Java程序设计》第二周学习总结
<Java程序设计>第二学习总结 教材学习内容总结 类型 byte(字节) shot(短整型) int(整型) long(长整型) float(浮点型) double(双精度) char( ...
- 关于计算机应用技术的周记,计算机应用技术专业实习周记范文
计算机应用技术专业实习周记范文 第1周 作为计算机应用技术专业的大学生,我很荣幸能够进入计算机应用技术专业相关的岗位实习.相信每个人都有第一天上班的经历,也会对第一天上班有着深刻的感受及体会.尤其是从 ...
- 20155313 2016-2017-2 《Java程序设计》第二周学习总结
20155313 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 1.1 基本类型 整数:可细分为short整数(占2字节).int整数(占4字节)与long ...
最新文章
- php ile_get_contents无法请求https连接的解决方法
- cocos2d-x JS 开启远程代码调试
- resourceAsStream
- java程序阅读技巧_Java程序员阅读源码的小技巧,原来大牛都是这样读的,赶紧看看!...
- php生成excel教程,php生成EXCEL的东东
- 划分字母区间c语言,LeetCode(#763):划分字母区间
- 359860-27-8,Biotin-PEG3-Amine增加了与生物素化合物共轭的分子的水溶性
- log4j2远程执行漏洞原理以及解决方案
- 发展农村数字普惠金融的问题及对策分析
- 开源办公的五个法律问题 ——以“新型冠状病毒”防控期间企业在线远程运营为视角...
- html app启动页制作,【示例】App引导页的制作
- Dart快速学习之路(完整版)
- 中国网络安全人才需求
- 利用python预测交通拥堵_Python可视化轻松展示交通拥堵情况
- 很不错的教程一步步教你如何写Makefile
- 企业应用大数据的三重境界:数据·分析·成果
- 计算机英语课程设计,计算机英语立体化课程设计论文
- 开始使用KMIP4J
- 计算机中进制相互转换(二进制、八进制、十进制和十六进制)
- babylon导入_77Three.js导入BABYLON格式的模型