一、调试模式介绍
调试模式,即进入网页页面半代码模式,查看网页与代码一一对应关系。鼠标右键,再出现选项中找到检查进入调试模式,或者按键盘上的F12键进入调试模式。
功能介绍:
elements:点击这个功能后出现的是当前页面的html文件,在你想实时修改的那个元素出双击,可以暂时修改,不过并没有同步到后台;
console:控制台,用来打印错误信息和你在后台写的console.log(“显示信息”)
source:资源管理功能,用于调试js文件,这里要说明的一点是,在右侧找不到你想调试的js文件时,可以在后台写“debugger”进入到这个js文件后可以在右侧单击打断点,想调哪里就哪里;
network:网络功能,用于查看相关的ajax请求,详情参考上图所示。
二、Cookie
cookie的用处
当客户端和服务器通过三次握手四次挥手建立起稳定连接之后,这个时候它们之间进行数据相互还会携带一个cookie参数。这个参数包含着诸如账号、密码以及一些偏好设置,一边提供个性化的内容。
当然cookie也是有 有效期的,超过有效期cookie将会清除作废,所以在编写一个cookie爬虫代码的时候,并不是一次编写永久运行。每隔一段时间段就需要更新cookie。
cookie的应用
什么时候使用cookie?
1. 当模拟登录不好编写时(结构复杂,有加密);
2. 只有cookie没有账号密码;
3. 网站根据cookie对用户进行推荐,专门爬取某人的个人推荐时。
在代码中利用cookies?
1. 将cookie写入headers中;
2. 使用get方法中的cookies参数进行传递 注意:参数必须为字典类型;
注意事项:
1. 自定义headers中的cookie,后面没有s(非cookies);
2. get方法中的cookies参数 cookies后面有s;
3. cookie一定是键值对存在的。
会话保持
1. 为什么要进行会话保持?
在requests.post请求中,去登录一个网站,会携带用户名和密码等信息。得到的response响应中,得到了cookie。但是这个时候如果我们成功登录进去了网页,想要打开网页的其他部分,会发现访问失败了。因为每一个requests请求,都是新打开一个浏览器去进行访问的,那我们不肯能去做每一个请求都要去登录一下怎么办? 就需要用到保持会话的功能了,我们可以只登录一次,然后保持这种状态去做其他的或者更多的请求。
2. requests.session() 会话保持!
说白了,就是比如你使用session成功登录了某个网站,则在再次使用该session对象请求该网站的其他网页默认使用该session之前使用的cookie等参数
3. 在什么时候进行使用?
1. 需要爬虫保持登录状态;
2. 爬虫需要携带一些特定的参数。比如购物网站的无登录状态下的推荐,主要是cookie。
模拟登录---使用requests
import requests from requests.utils import dict_from_cookiejar # cookiejar对象转字典 url = "https://www.xxsy.net/LoginNew/dologin" book_url = "https://www.xxsy.net/control?t=1" # 书架url,如果没有登录进去是访问不了书架的 headers = { “user-agent”: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36" } # 账号密码 data = { "username": "18986145549" "password": "dongli123456" } # 发起一个post请求 response1 = requests.post(url, headers=headers, data=data) # 通过往get请求里面传cookie访问书架页面 response2 = requests.get(book_url, headers=headers, cookies=dict_from_cookiejar(response1.cookies)) print(response2.text)
三、代理、禁止重定向
标签:02,cookies,登录,url,爬虫,headers,cookie,requests From: https://www.cnblogs.com/lxinghua/p/17219226.html