使用requests模块进行初步爬虫

requests模块

1、get请求:

(1)使用步骤:

#1、导包:

    import requests

#2、发送请求,获取响应

    response = requests.get(url)

#3、获取响应内容

    response.text

(2)get请求详细参数

    requests.get(

    url=请求的url,

    headers=请求头【字典】,

    params=请求参数字典     >>所有请求参数一个不能少

    )---->【response对象】

(3)response对象的属性

a、获取响应正文

    获取响应正文的字符串格式数据:response.text

    获取响应正文的二进制格式数据:response.content

b、编码:response.encoding:

    之所以能够通过response.text获取响应内容的字符串,requests底层其实就是使用的response.encoding来将正文的二进制类型变成字符串的。

    response.content.decode(response.encoding)

c、其他:

    response.status_code:状态码

    response.headers:响应头

d、乱码问题的解决办法:

产生的原因就是编解码不一致。

(1)response.content.decode('页面对应的编码格式')

(2)response.encoding='页面正确的编码'

response.text就能获取正确的页面内容了。

2、post请求

    requests.post(

    url=请求的url,

    headers = 请求头,

    data=请求数据,       >> 如果请求参数既存在get(Query String Parameters)类型也存在post(Form Datas)类型,那么将get参数直接放入地址栏中,此处只接受post参数

    )--->response对象

    如果response的内容是json数据,可以通过reponse.json()直接获取json数据,返回的是一个字典或者list

找ajax接口的的数据,最重要的就是分析请求参数,如果不能获取数据,那就是请求参数有误,只要找到正确的请求参数获取方法,就可以解决这样的问题。

确定是哪些请求参数在影响数据的获取,判断办法就是比对,比对两条ajax请求他们参数哪些发生了变化,变化的参数就是你要解决的核心。

找参数的办法有两种:

1第一种就是查看这条ajax接口之前有没有发送过一些ajax接口,如果有,可能这些接口的其中一个的响应内容里面包含这个接口的数据。

2、有可能这个请求参数写死到页面中的。--一般这种情况出现在滚动加载的第一版数据的获取有可能这么做。

3、在js文件中去寻找参数。

猜你喜欢

转载自www.cnblogs.com/bug-king/p/11960730.html