标签:请求 url resp 爬虫 第一章 headers 客户端 源代码 入门
第一章 爬虫入门
1.1 第一个爬虫程序
基础代码
# 制作者:tlott
from urllib.request import urlopen
url = "http://www.baidu.com"
resp = urlopen(url) # resp是response的意思
with open("mybaidu.html", mode="w", encoding="utf-8") as f: # utf-8可由源代码中获取得知
f.write(resp.read().decode("utf-8")) # 读取网页的源代码
print("over!")
1.2 web请求过程剖析
渲染方式:
1)服务器渲染:
定义:在服务器端直接将数据和html整合在一起,统一返回给浏览器
特点:在页面源代码中能看到数据
2)客户端渲染:
定义:第一次请求只返回html骨架,第二次请求拿到数据,进行数据展示
特点:在页面源代码中看不到数据
1.3 HTTP协议
请求:
1)请求行—>请求方式(get/post)请求URL地址 协议
2)请求头—>放一些服务器要使用的附加信息
3)请求体—>一般放一些请求参数
响应:
1)请求行—>协议 状态码
2)响应头—>放一些客户端要使用的附加信息
3)响应体—>服务器返回的真正客户端要用的内容(HTML,json)等。
在后⾯我们写爬⾍的时候要格外注意请求头和响应头. 这两个地⽅一般都隐含着⼀些⽐较重要的内容
请求头中最常⻅的⼀些重要内容(爬⾍需要):
1.User-Agent : 请求载体的身份标识(⽤啥发送的请求)
2.Referer: 防盗链(这次请求是从哪个⻚⾯来的? 反爬会⽤到)
3.cookie: 本地字符串数据信息(⽤户登录信息, 反爬的token)
响应头中⼀些重要的内容:
1.cookie: 本地字符串数据信息(⽤户登录信息, 反爬的token)
2.各种神奇的莫名其妙的字符串(这个需要经验了, ⼀般都是token 字样, 防⽌各种攻击和反爬)
请求⽅式:
GET: 显示提交
POST: 隐示提交
1.4 Requests入门
import requests
url = "https://movie.douban.com/j/chart/top_list"
# 如果url值过长,可将?及其之后的内容删除,并在之后的内容中加入负载参数
param = {
"type": "24",
"interval_id": "100:90",
"action": "",
"start" : 0,
"limit": 20
}
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.55"
}
resp = requests.get(url = url, params = param, headers=headers)
print(resp.json())
resp.close() # 关掉resp
⼀些⽹站在进⾏请求的时候会校验你的客户端设备型号,所以要注意headers的内容
标签:请求,url,resp,爬虫,第一章,headers,客户端,源代码,入门 来源: https://www.cnblogs.com/tlott/p/16096054.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。