爬虫第二课requests模块

本文探讨了递归算法的应用,包括斐波那契数列的递推定义及其实现,以及如何使用递归方法寻找列表中的最大值和最小值。

斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
def F(n):
if n 1 or n2:
return 1
return F(n-1)+F(n-2)

求一个list的最大值和最小值,用递归的方法。返回值是一个元组,(max,min)

	def my_maxmin(L):if len(L)<=0:print('输入有误!列表不能为空!')return Nonereturn maxMin(L,0,len(list_)-1))def maxMin(L,start,end):if end-start <=2:return (max(L[start],L[end]),min(L[start],L[end]))
​		max1,min1 = maxMin(L,start,(start+end)//2)
​		max2,min2 = maxMin(L,(start+end)//2+1,end)return (max(max1,max2),min(min1,min2))

list_ = [11,22,43,-10,33,28,90]

print(maxMin(list_,0,len(list_)-1))

1、python模块的名字非常重要,一定要记住响应功能的导包语句。

2.requests模块get请求

步骤:
	1.导包
		import requests
	2、确定请求的url
		base_url = ''
	3.发送请求,获取响应。
		response = requests.get(
			url = base_url,#请求的url
			headers={},请求头
			params = {},请求参数字典
		
		)
	4.response这个对象包含的内容都有以下几个:
		(1)状态码:
			response.status_code
		 (2)响应头
			response.headers['Cookie']
		 (3)响应正文
			1.获取字符串类型的响应正文
				response.text
			2.获取bytes类型的响应正文
				response.content
			3.响应正文字符串编码
				response.encoding
		 (4)响应内容的乱码问题:
			当我们用response.text获取字符串的响应正文的时候,有时候会出现乱码:
			原因是response.encoding这个字段默认指定编码有误。
			解决办法就是你手动指定
			response.encoding = ‘utf-8’
			
			另一种办法:
				response.content.decode('utf-8')
			
	get请求的项目类别:
		1.没有请求参数的,比如百度和百度产品这两个项目,我们只需要添加请求头,分装
		user-agent这个请求头就可以了。
		2.带请求参数的。比如新浪新闻这个项目
		基础url就是问号以前包括问号的内容。
		设置请求参数字典:
			params = {
				字典的内容就是chrome里面query string params里面的内容
			}
			
		3.分页---百度贴吧
			方法:
				1.先找出分页的规律。一般是通过params参数中的其中一个参数来控制的。
				2.找到这个参数每一页的规律。
				3.用for循环来请求每一页的内容。

2.requests模块的post请求。

​ response = requests.post(
​ url,
​ headers = {},
​ data={},请求数据字典
​ )
​ post请求一般得到响应内容是json数据。
​ 处理json数据用到的模块就是json模块。
​ json数据就是本质上就是字符串。
​ json.dumps(python的list或者dict)---->(返回值)---->json字符串。
​ json.loads(json字符串)------>(返回值)----->python的list或者dict.

response.json()---->可以直接将获取到的json字符串转化成python的list或者dict.

处理post请求的请求参数怎么解决换了请求参数就请求不到的问题?
也就是post请求的内容主要解决请求参数,就可以获取数据了。
思路就是
1、比对。比对data字典,哪些参数是不一样的。
2.想办法找到这些参数的生成原理。
一些参数可以存放:
1.页面中。–都是固定写死。
2.js中动态生成参数。
3.可以通过ajax来获取一些

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值