爬虫基础+requests

Posted 宇果的开发家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫基础+requests相关的知识,希望对你有一定的参考价值。

1.服务器渲染:在服务器那边直接把数据和html集合在一起,统一返回给浏览器,这是在页面可以看到源代码的情况下

2.客户端渲染: 每次请求只要一个html,第二次请求拿到数据,进行数据展示,在页面源代码中,看不到数据

优点:拿到的数据是非常有规律的

HTTP

请求头中常见的一些重要的内容(爬虫需要)

1.User-Agent:请求载体的身份标识(用啥发送的请求)

2.Referer:防盗链(这次请求是从哪个页面来的?返爬会用到的)

3.cookie:本地字符串数据信息(用户登录信息,返爬的token)

响应头里重要的内容:

1.cookie:本地字符串数据信息(用户登录信息,反爬的token)

2.各种神奇的莫名其妙的字符串(一般都是token字样,防止各种攻击和反爬)

 

安装requests

pip install requests

国内源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple  requests

推荐 清华源  阿里源

地址栏里统一用get请求

Requests

1、发送post请求时,发送的数据必须是字典的形式,放在字典中,通过data参数进行传递,如果出现乱码的情况,可以用python基础中的.json

例如:
dat = {
   "kw": s
}

# 发送post请求
resp = requests.post(url, data=dat)
print(resp.json())
post请求带参是data
2、发送get请求时带参是params
3、resp.close()

运行完事之后,最好使用这个关闭爬虫代码,不然访问的次数过多会出现毒死的现象就会报错

4.如果出现了客户端渲染,就是需要第二次才能拿到请求的话就将headers打印出来,将浏览器的‘User-alive’以字典的形式复制到pycharm中,请求的时候带参(headers)请求
例如
import requests


url = \'https://www.sogou.com/web?query=周杰伦\'
dic = {
\'User-Agent\': \'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.190 Safari/537.36\'
}
resp = requests.get(url,headers=dic)  #处理了一个小小的反爬
print(resp)
print(resp.text) # 拿到页面源代码
如果路由过长,可以使用params重新封装
例如:
import requests

url = \'https://movie.douban.com/j/chart/top_list\'

# 重新封装参数
param = {
   "type": "24",
   "interval_id": "100:90",
   "action": 100,
   "start": "0",
   "limit": 20,
}

headers = {
   \'User-Agent\':\'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36\'
}

resp = requests.get(url=url,params=param,headers=headers)

# print(resp.json())
print(resp.request.headers)
# resp.close()

以上是关于爬虫基础+requests的主要内容,如果未能解决你的问题,请参考以下文章

爬虫简单基础代码

用python零基础写爬虫--编写第一个网络爬虫

Python爬虫基础

爬虫基础一

小白学 Python 爬虫(17):Requests 基础使用

爬虫1.1-基础知识+requests库