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