python3-爬虫 02 使用urllib对CSDN首页进行一次简单的爬取

对CSDN首页进行一次简单爬取

知识点:
urllib主要包含四个模块:
 	1.request: 模拟发送请求
	2.error: 处理异常
	3.parse: 提供了URL的处理方法
	4.robotparser: 用于识别网站的robot.txt文件在这里插入代码片
	
 urlopen方法:
	urlopen(url, data=None, [timeout,]*, cafile=None, 
		capath=Node, cadefault=False, context=None, 
		)    # 默认使用GET方式请求
		
Request方法:
class urllib.request.Request(url, data=None, headers={}, 
	origin_req_host=None, unverifiable=False, method=None
	)
	
参数含义:
	url:请求信息  必选参数
	data: 附加数据 可选参数
	headers: 请求头(能通过修改User-Agent让我们伪装成浏览器)
	origin_req_host:请求方的host名称或IP地址
	unverifiable: 权限验证
	method: 用于指示请求的方式(GET/POST)

简单爬取

from urllib import request, parse, error
import socket

response = urllib.request.urlopen(
	'https://www.csdn.net/?spm=1011.2124.3001.4476'
	)
print(response.read().decode('utf-8'))   # 返回的是一个网页源代码
print(response.status)					# 响应的状态码
print(response.getheaders())			# 响应的头信息
print(response.getheader('Server'))		# 获取服务器名称

添加参数 使用请求测试网站进行测试

from urllib import request, parse, error
import socket

#添加data参数,添加后请求方式转为POST,需要ytes类型,需要通过bytes()方法转化
#添加timeout参数。timeout参数用于设置超时时间,即超过这个时间还没响应的话就报错。若不指定则使用全局默认时间。单位为秒
data = bytes(urllib.parse.urlencode({'word': 'hello'}), encoding='utf8')
try:
	response = urllib.request.urlopen('https://httpbin.org/post', data=data, timeout=5)
except urllib.error.URLError as e:
	if isinstance(e.reason, socket.timeout):
		print("响应超时!")
else:
	print(response.read())

使用Request方法进行访问

from urllib import request, parse, error
import socket

url = 'https://httpbin.org/post'
headers = {
	'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
}
dict = {
	'name': 'sunqg'
}
data = bytes(parse.urlencode(dict), encoding='utf8')
req = request.Request(url=url, data=data, headers=headers, method='POST')
response = request.urlopen(req)

print(response.read().decode('utf8'))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值