欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

爬虫day02

程序员文章站 2022-05-03 16:07:46
...

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来获取一些