文章目录

  • 第二周 实习任务
  • 一、服装网站热榜爬虫

第二周 实习任务

  1. 服装网站热榜爬虫,按照【爬虫库表结构】储存数据。

一、服装网站热榜爬虫

这次安排的任务使用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相关推荐

  1. 20145233韩昊辰第二周实习实验报告

    20145233韩昊辰第二周C语言实习 实习内容 学习使用新系统中的C语言教学,完成25个课时的学习,在虚拟机中完成C语言代码编写与基础C语言知识理解. 因为虚拟机打开不方便,并且使用的是vc6编译的 ...

  2. 第二周实习小记-----大牛离我们有多远

    当我开始写这篇文章的时候,已经下定决心要把我实习期的这些经历写成一个系列文章了.向大牛学习.不管一周做了些什么,都总结一下坚持的写一些东西.且思且行,不管在知识和思想上都会有所收获.所以在文章的最后我 ...

  3. 12.20今日头条实习面试总结-算法工程师

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/John_xyz/article/details/78884425 </div><d ...

  4. 2021/12/20 显示动态读秒跳转页面

    显示动态读秒跳转页面 1.antdesign 第一种: 读秒3s后跳转 <template><a-button type="primary" @click=&qu ...

  5. 2021.12.20用ULN2003驱动四线步进电机

    经验证,ULN2003与四只PNP三极管.8只4.7K基极上拉电阻组合构成双H桥电路(用八个驱动信号,如果再增加4只4.7K同侧桥基极串接电阻,则可以只用四个驱动信号),还是可以驱动四线两相步进电机.

  6. 2021.12.20基本RS触发器

    RS触发器有与非和或非门两种构成,有时与非门构成的触发器还使用负逻辑. 我们注意到: 1.这两种RS触发器的RS对应的Q和Q非位置并不相同,这是为了保持R作为复位端,S作为置位端. 2.与非门构成的R ...

  7. 20155327《Java程序设计》第二周学习总结

    <Java程序设计>第二学习总结 教材学习内容总结 类型 byte(字节) shot(短整型) int(整型) long(长整型) float(浮点型) double(双精度) char( ...

  8. 关于计算机应用技术的周记,计算机应用技术专业实习周记范文

    计算机应用技术专业实习周记范文 第1周 作为计算机应用技术专业的大学生,我很荣幸能够进入计算机应用技术专业相关的岗位实习.相信每个人都有第一天上班的经历,也会对第一天上班有着深刻的感受及体会.尤其是从 ...

  9. 20155313 2016-2017-2 《Java程序设计》第二周学习总结

    20155313 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 1.1 基本类型 整数:可细分为short整数(占2字节).int整数(占4字节)与long ...

最新文章

  1. php ile_get_contents无法请求https连接的解决方法
  2. cocos2d-x JS 开启远程代码调试
  3. resourceAsStream
  4. java程序阅读技巧_Java程序员阅读源码的小技巧,原来大牛都是这样读的,赶紧看看!...
  5. php生成excel教程,php生成EXCEL的东东
  6. 划分字母区间c语言,LeetCode(#763):划分字母区间
  7. 359860-27-8,Biotin-PEG3-Amine增加了与生物素化合物共轭的分子的水溶性
  8. log4j2远程执行漏洞原理以及解决方案
  9. 发展农村数字普惠金融的问题及对策分析
  10. 开源办公的五个法律问题 ——以“新型冠状病毒”防控期间企业在线远程运营为视角...
  11. html app启动页制作,【示例】App引导页的制作
  12. Dart快速学习之路(完整版)
  13. 中国网络安全人才需求
  14. 利用python预测交通拥堵_Python可视化轻松展示交通拥堵情况
  15. 很不错的教程一步步教你如何写Makefile
  16. 企业应用大数据的三重境界:数据·分析·成果
  17. 计算机英语课程设计,计算机英语立体化课程设计论文
  18. 开始使用KMIP4J
  19. 计算机中进制相互转换(二进制、八进制、十进制和十六进制)
  20. babylon导入_77Three.js导入BABYLON格式的模型

热门文章

  1. 【Linux 内核】Linux 内核源码目录说明 ④ ( security 目录 | sound 目录 | tools 目录 | usr 目录 | virt 目录 )
  2. 微信小程序实现身份证识别-ocr
  3. 信号与线性系统经典分析方法思维导图
  4. R语言的Copula变量相关性分析
  5. 单片机学习 10-步进电机
  6. 管家婆进销存创业板3.0.1.33
  7. http协议_HTTP协议
  8. 集体智慧编程ch2——提供推荐
  9. 智能ai电话机器人源码加密开源版开发
  10. 一张画布重塑你的职业生涯