Response知识点总结

1.设置响应行的状态码

setStatus(int sc)

常用的状态码如下:

200 :请求成功。

302 :请求重定向。

304 :请求资源没有改变,访问本地缓存。

404 :请求资源不存在。通常是用户路径编写错误,也可能是服务器资源已删除。

500 :服务器内部错误。通常程序抛异常。

2.设置响应头

addHeader(String name, String value) 

addIntHeader(String name, int value) 

addDateHeader(String name, long date) 

setHeader(String name, String value) 

setDateHeader(String name, long date) 

setIntHeader(String name, int value)

3.设置响应体

(1)关于设置中文的乱码问题:response.setContentType("text/html;charset=UTF-8");

(2)响应头设置字节

ServletOutputStream  getOutputStream() ------------可用于文件下载

附:文件下载核心代码

// 获得要下载的文件的名称
String filename = request.getParameter("filename");

// 解决获得中文参数的乱码
filename = new String(filename.getBytes("ISO8859-1"), "UTF-8");

// 获得请求头中的User-Agent
String agent = request.getHeader("User-Agent");

// 根据不同浏览器进行不同的编码
String filenameEncoder = "";
if (agent.contains("MSIE")) {
	// IE浏览器
	filenameEncoder = URLEncoder.encode(filename, "utf-8");
	filenameEncoder = filenameEncoder.replace("+", " ");
} else if (agent.contains("Firefox")) {
	// 火狐浏览器
	BASE64Encoder base64Encoder = new BASE64Encoder();
	filenameEncoder = "=?utf-8?B?" + base64Encoder.encode(filename.getBytes("utf-8")) + "?=";
} else {
	// 其它浏览器
	filenameEncoder = URLEncoder.encode(filename, "utf-8");
}

// 要下载的这个文件的类型-----客户端通过文件的MIME类型去区分类型
response.setContentType(this.getServletContext().getMimeType(filename));
// 告诉客户端该文件不是直接解析 而是以附件形式打开(下载)
response.setHeader("Content-Disposition", "attachment;filename=" + filenameEncoder);
// 获得文件的绝对路径
String path = this.getServletContext().getRealPath("download/" + filename);
// 获得该文件的输入流
InputStream in = new FileInputStream(path);
// 获得输出流---通过response获得输出流,用于向客户端写内容
ServletOutputStream out = response.getOutputStream();
// 文件拷贝的模版代码
int len = 0;
byte[] buffer = new byte[1024];
while ((len = in.read(buffer)) > 0) {
    out.write(buffer, 0, len);
}
in.close();
### Python爬虫技术知识点总结 #### 一、Python爬虫的基础概念 Python爬虫是一种自动化工具,用于从互联网上提取结构化数据。它能够模拟人类浏览网页的行为,自动访问网站并下载所需的数据[^2]。 #### 二、核心库与工具 1. **Requests 库** Requests 是一个简单易用的 HTTP 请求库,支持发送 GET/POST 请求以及处理 Cookies 和 Headers 等功能。它是构建爬虫程序的核心依赖之一[^2]。 2. **BeautifulSoup 库** BeautifulSoup 提供了一种方便的方式来解析 HTML 或 XML 文档,从而提取有用的信息。它可以配合 Requests 使用来完成页面内容的解析[^3]。 3. **Scrapy 框架** Scrapy 是一个强大的开源爬虫框架,适用于大规模数据采集任务。它内置了许多高级特性,比如异步请求、中间件管理等[^1]。 #### 三、常见问题与解决方案 1. **反爬虫机制** 许多网站会采取措施防止被频繁抓取,例如设置 IP 黑名单、验证码验证或者限制访问频率。为了应对这些挑战,在开发过程中需要注意合理配置 User-Agent、使用代理池或延时加载等方式降低被抓的风险[^1]。 2. **数据安全性和隐私保护** 当涉及敏感信息时,务必遵循相关法律法规,并尊重目标站点的服务条款。未经授权不得随意复制受版权保护的内容。 #### 四、进阶技能 - 学习如何处理 JavaScript 渲染后的动态网页 (Selenium, Pyppeteer); - 掌握数据库操作以便高效存储大量数据 (SQLite, MySQL); - 实现分布式架构提升效率和稳定性; ```python import requests from bs4 import BeautifulSoup def fetch_data(url): headers = {'User-Agent': 'Mozilla/5.0'} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, "html.parser") title = soup.find('title').string return title url = "http://example.com" print(fetch_data(url)) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值