python3 爬虫基础(UPDATE)

  1. 客户端与服务器的网页通信简单原理:
    客户端向服务器发送一个请求,服务端对该客户端的请求进行解析,然后服务端向客户端发送出一个响应,而后客户端对该响应进行解析,然后就解析出用户所看到的网页。

  2. 请求与响应:
    请求:请求方法(get、post(与需要用户登录的网页有关)),请求头,请求 URL,请求体(与需要用户登录的网页有关)。
    响应:响应体(html代码爬虫重点分析对象),响应头、响应码(根据它可以 判断服务器的情况,如 200 代表请求成功)

3.爬虫基本流程:

发起请求-->获取响应内容-->解析内容-->保存数据
请求:
	一般爬虫都会加上请求头.
解析内容:
	解析html数据:用正则表达式和第三方解析库解析。
	解析json数据:用json模块解析。
	解析二进制数据:以wb的方式写入文件。
存储:
	数据库、文件

4.python3请求库:
(1)urllib库(python内置的HTTP请求库)

它有4个模块:
	request:最基本的HTTP请求模块。
	error:异常处理模块,如果出现请求错误,我们可以捕获这些异常,
			然后进行重试或其他操作以保证程序不会意外终止。
	parse: 一个工具模块,提供了许多URL 处理方法,比如拆分、解析、合并等。	
	robotparser :主要是用来识别网站的robots.txt 文件,然后判断哪些网站可以爬,
			哪些网站不可以爬,它其实用得比较少。

request请求模块使用

import urllib.request

#返回一响应对象
response=urllib.request.urlopen("https://zhidao.baidu.com/question/539674215.html")

#打印响应对象类型和响应码。根据响应码可判断服务器的状态
#print(type(response),response.status)

#打印响应头信息
#for a in response.getheaders():
#    print(a)

#传入一个"Server",获取响应头的Server值,
# 该值代表服务器用什么搭建的。
#print(response.getheader("Server"))

#返回二进制数据对象(html内容)
#html=response.read()
#print(type(html))

#网页的编码格式确认:可以用浏览器打开需抓取的网页url,
#   打开开发者工具,找到html下<head> charset="gbk" </head>,"gbk"为编码格式之一
#对二进制数据解码。解码格式一定要与抓取网页的编码格式对应
#print(html.decode("gbk"))

向request请求模块传递参数

"""
import urllib.parse
import urllib.request

#传递了一个参数word,值是hello,它需要被转码成bytes(字节流)类型。
# 其中转字节流采用了bytes()方法
#urllib.parse 模块里的urlencode()方法来将参数字典转化为字符串.
# 第二个参数指定编码格式
data = bytes(urllib.parse.urlencode({'word':'hello'}), encoding="utf-8")

#如果传递了这个参数(data),则它的请求方式就不再是GET 方式,而是POST 方式。
response= urllib.request.urlopen('http://httpbin.org/post',data=data)

#我们传递的参数出现在了form 字段中,这表明是模拟了表单提交的方式,
# 以POST 方式传输数据。
print(response.read().decode("utf-8"))
"""

import urllib.request
#timeout 参数用于设置超时时间,单位为秒,
#意思就是如果请求超出了设置的这个时间,还没有得到响应,就会抛出异常。
response = urllib.request.urlopen('http://h
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值