- Accept-Encoding: 指定客户端可接受的内容编码。
- Host:用于指定请求支援的主机IP和端口号,其内容为请求URL的原始服务器或网关的位置。从HTTP1.1版本开始,请求必须包含此内容。
- Cookie: 也常用复数形式Cookies,这是网站为了辨别用户进行会话跟踪而存储在用户本地的数据。它的主要功能是维持当前访会话。例如,我们输入用户名和密码成功登录某个网站后,服务器会用会话保存登录状态信息,后面我们每次刷新或请求该站点的其他页面时,会发现都是登录状态,这就是Cookies的功劳。Cookies里有信息标识了我们所对应的服务器的会话,每次浏览器在请求该站点的页面时,都会在请求头加上Cookies 并将其返回给服务器,服务器通过Cookies识别出是我们自己,并且查出当前状态是登录状态,所以返回结果就是登陆之后才能看到的网页内容。
- Referer: 此内容用来标识这个请求是从哪个页面发过来的,服务器可以拿到这一信息并做相应处理,如做来源统计、防盗链处理等。
- User-Agent: 简称UA,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本、浏览器及版本等信息。再做爬虫时加上此信息,可以伪装为浏览器:如果不加,很容易可能被识别出为爬虫。
- Content-Type: 也叫互联网媒体类型(Internet Media Type)或者MIME类型,在HTTP协议消息头中,它用来表示具体请求中的媒体类型信息。例如,text/html 代表HTML格式,image/gif 代表GIF图片,application/json 代表JSON类型,更多对应关系可以查看此对照表:
- Response中包含什么内容?
- 响应,由服务端返回给客户端,可以分为三部分:响应状态码(Response Status Code)、响应头(Response Headers)、响应体(Response Body)
- 1、响应状态码
响应状态码表示服务器的响应状态,如200代表服务器正常响应,404代表页面未找到,500代表服务器内部发生错误。在爬虫中,我们可以根据状态码来判断服务器响应状态,如状态码为200,则证明成功返回数据,在进行进一步的处理,否则直接忽略。
- 2、响应头
- 3、响应体
最重要的当属响应体的内容了。响应的正文数据都在响应体中,比如请求网页时,它的响应体就是网页的HTML代码;请求一张图片时,它的响应体就是图片的二进制数据。我们走爬虫请求网页后,要解析的内容就是响应体, 在浏览器开发者工具中点Preview,就可以看到网页的源代码,也就是响应体的内容,它是解析的目标。
在做爬虫时,我们主要通过响应体得到的网页的源代码、JSON数据等,然后从中做相应内容的提取。
用http请求库向服务器发送一个请求,然后得到这个response,把这个响应体里的内容拿下来,然后解析就可以拿到我们的数据了。
三、案例实现
======================================================================
- 找到目标网址
- 发送网络请求
- 获取数据
- 筛选数据
- 保存数据
import requests
import pprint
统一替换
1.选中要替换的内容
2.按住Ctrl+R 注: 点亮星号* / 2021版本一下 点亮Regex
3.在第一个框里面输入(.?): (.)
4.在第二个框里面输入’$1’: ‘$2’,
5.点击REPLACE ALL
headers = {
‘cookie’: ‘’,
‘referer’: ‘https://weibo.com/tv/channel/4379160563414111/editor’,
‘user-agent’: ‘’,
}
data = {
‘data’: ‘{“Component_Channel_Editor”:{“cid”:“4379160563414111”,“count”:9}}’
}
url = ‘https://www.weibo.com/tv/api/component?page=/tv/channel/4379160563414111/editor’
json_data = requests.post(url=url, headers=headers, data=data).json()
ccs_list = json_data[‘data’][‘Component_Channel_Editor’][‘list’]
next_cursor = json_data[‘data’][‘Component_Channel_Editor’][‘next_cursor’]
for ccs in ccs_list:
oid = ccs[‘oid’]
title = ccs[‘title’]
data_1 = {
‘data’: ‘{“Component_Play_Playinfo”:{“oid”:"’ + oid + ‘"}}’
}
1. 找到目标网址
url_1 = ‘https://weibo.com/tv/api/component?page=/tv/show/’ + oid
2. 发送网络请求
(1)Python所有方向的学习路线(新版)
这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
最近我才对这些路线做了一下新的更新,知识体系更全面了。