当前位置:网站首页 > Java基础 > 正文

java爬虫入门教程(java爬虫代码示例)



目录

  • 静态页面抓取
  • 安装Requests
  • 获取响应内容
  • 定制Requests
  • 传递URL参数
  • 定制请求头
  • 发送POST参数
  • 超时
  • Requests爬虫实践:TOP250电影数据
  • 网站分析

在网站设计中,纯粹HTML格式的网页通常被称为静态网页。对于静态网页,所有的数据呈现在网页的HTML代码中;相对而言使用AJAX动态加载网页的数据不一定出现在HTML代码中,这就给爬虫增加了困难。本节主要介绍静态网页数据的抓取。

这样就返回了一个名为 的response响应对象,里面存储了服务器响应的内容。

java爬取网页内容图片_java爬取网页内容图片

  1. r.text是服务器响应的内容,会自动根据响应头部的字符编码进行解码
  2. r.encoding是服务器内容使用的文本编码
  3. r.status_code 用于检测响应的状态码,如果返回200,表示请求成功;如果返回4xx,表示客户端错误,返回5xx,表示服务器错误响应。可以使用r.status_code来检测请求是否正确响应。
  4. r.content是字节方式的响应体,会自动节码gzip和deflate编码的响应数据
  5. r.json是Requests内置的JSON解码器

传递URL参数

为了请求特定的参数,我们通常在URL的查询字符中加入某些数据,如果我们自己构建URL,一般数据会跟在一个问号后面,如http://httpbin.org/get?key1=value1&key2=value2

在Requests中,可以把这些参数放在字典李,用params构建至URL里。例如key1=value1,key2=value2构建至http://httpbin.org/get里

java爬取网页内容图片_请求头_02

定制请求头

请求头Headers提供了关于请求、响应或其他发送实体的信息。对于爬虫而言,请求头十分重要,有的时候,如果没有请求头或者请求头和实际网页不一致,就可能无法返回正确的结果。

java爬取网页内容图片_请求头_03

右键点击检查

java爬取网页内容图片_爬虫_04

点击Network,在左侧的资源栏找到需要请求的网页(),单击需要请求的网页,在Headers中可以看到 Requests 中 Headers 的详细信息

java爬取网页内容图片_服务器_05

注意:这里的Host字段的意思主要是,指明http报文的方向,访问的地点

发送POST参数

除了GET请求外,有时还需要发送一些编码为表单形式的数据,如在登陆的时候请求就是POST,因为如果使用GET请求,密码就显示在URL里,这是非常不安全的。

java爬取网页内容图片_java爬取网页内容图片_06

超时

有时爬虫遇到服务器长时间不反悔,这时爬虫程序就会一直等待,造成爬虫没有顺利执行。

因此可以使用中的timeout参数设置特定的表述结束后停止等待响应。意思是:服务器在timeout秒后没有应答,就返回异常。

我们把这个秒数设置成0.001,看看会抛出什么异常。

java爬取网页内容图片_服务器_07

网站分析

  1. 使用检查功能查看该网页的请求头,提取重要的请求头信息

我们观察可以发现,一页有25个电影的信息,如果想要获取250个电影信息,我们需要获取总共10页

这时候我们会发现,点击第一页的时候网址为

这里使用了xpath的方法对网页数据进行筛选

java爬取网页内容图片_爬虫_08

java爬取网页内容图片_数据_09

到此这篇java爬虫入门教程(java爬虫代码示例)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • java面试题八股文面试(程序员 面试 八股文)2024-12-18 09:36:08
  • java课程设计网站(java课程设计案例精编)2024-12-18 09:36:08
  • javajson字符串转map(java字符串转jsonarray)2024-12-18 09:36:08
  • java自学app(Java自学教程)2024-12-18 09:36:08
  • java面试题基础知识(java面试必考题)2024-12-18 09:36:08
  • Json字符串转map(Json字符串转义后 保存到mysql Java程序)2024-12-18 09:36:08
  • java入门网站(java基础教程网站)2024-12-18 09:36:08
  • javaspring教程(java spring)2024-12-18 09:36:08
  • java内存模型和java内存结构(java内存模型八种操作)2024-12-18 09:36:08
  • console是什么意思csgo(console是什么意思Java)2024-12-18 09:36:08
  • 全屏图片