96SEO 2026-02-20 07:20 0
requests模块发送Get请求五、Get请求携带参数六、携带请求头七、发送post请求八、携带cookie方式一放在请求头中方式二放在cookie参数中

十一、session对象十二、响应response对象十三、下载图片十四、ssl认证十五、超时设置异常处理上传文件十六、使用代理
从技术层面来说就是通过程序模拟浏览器请求站点的行为把站点返回的HTML代码/JSON数据/二进制数据(图片、视频等)爬取到本地进而提取自己需要的数据存放起来使用
通俗的说就是通过模拟发送http请求从而去别人的服务端获取数据然后把获取的数据入库
爬虫有爬虫协议(是一个君子协议)每个网站根路径下都有robots.txt这个文件规定了该网站哪些可以爬取哪些不能爬取
方式1浏览器提交请求—下载网页代码—解析成页面方式2模拟浏览器发送请求(获取网页代码)—提取有用的数据—存放到数据库或文件中
1.发起请求(模拟发送http请求)使用http库向目标站点发送请求即发送一个request请求request包含请求头、请求体等需要使用到爬虫模块1.reqeusts模块2.selenium网页反扒封idip代理封账号cookie池2.获取响应内容如果服务器能正常响应则会得到一个ResponseResponse包含htmljson图片视频等3.解析数据内容解析html数据正则表达式RE模块第三方解析库如Beautifulsouppyquery等解析json数据json模块解析二进制数据以wb的方式写入文件4.保存数据(数据入库)数据库MySQLMongdb、Redis文件中三、requests模块介绍
使用python如何向网页发送http请求本质是requests模块,封装了python内置模块urllib使用requests可以模拟浏览器的请求http比起之前用到的urllibrequests模块的api更加便捷本质就是封装了urllib3)
requests库发送请求将网页内容下载下来以后并不会执行js代码这需要我们自己分析目标站点然后发起新的request请求
requests.get(https://www.cnblogs.com/)#
http响应体文本内容如果有的网站发送请求后不返回数据或者拦截这是别人做了反扒#
http请求:请求头中没带东西没带cookie客户端类型referer....res
requests.get(https://dig.chouti.com/)print(res.text)五、Get请求携带参数
requests.get(https://www.baidu.com?infojack)print(res.url)
https://www.baidu.com/?infojack方式二使用params参数携带res
requests.get(https://www.baidu.com,params{info:jack,age:19})print(res.url)
#https://www.baidu.com/?infojackage19#
:User-Agent,如果向后端发送请求没有带这个请求头后端就禁止访问。
大多网站没有携带该参数就被禁止了。
UA是一个特殊字符串头使得服务器能够识别客户使用的操作系统及版本、CPU
类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。
requests.get(https://dig.chouti.com/,headersheaders)def
:class:Request.print(res.text)User-Agent客户端类型有浏览器、手机端浏览器、爬虫类型程序scrapy一般伪造成浏览器我们去爬某个网站发送请求不能正常返回数据说明模拟的不够像需要携带参数只要参数对应上就能返回相应的数据。
一般网站可以通过Referer来做反扒如果要登录模拟向登录接口发请求正常操作必须在登录页面上才能干这事。
如果没有携带referer它就认为你是恶意的就会拒绝。
Safari/537.36,Cookie:iJ9flkdsjaxxxx...}data
requests.post(https://dig.chouti.com/link/vote,headersheaders,datadata)print(res.text)
{data:4,code:200,success:true}八、携带cookie
前后端分离项目---》登录信息--》后端规定的--》放在请求头的headers
Safari/537.36,Cookie:deviceIdweb.eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9flkdsjaxxxx...}data
requests.post(https://dig.chouti.com/link/vote,headersheaders,datadata)print(res.text)
{data:4,code:200,success:true}方式二放在cookie参数中
通过cookie参数因为cookie很特殊一般都需要携带模块把cookie单独抽取成一个参数是字典类型以后可以通过参数传入headers
{token:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9xxxxx}
requests.post(https://dig.chouti.com/link/vote,headersheaders,datadata,cookiescookie)print(res.text)
{data:5,code:200,success:true}九、post请求携带参数
requestspost请求三种编码方式json、Urlencoded、form-data方式一data参数#
咱们以data字典形式携带它使用的Urlencoded编码最终编码为namejackage19然后放在请求体中:param
requests.post(地址,data{name:jack,age:19})#
requests.post(地址,databnamejackage19)方式二json编码#
咱们以json字典形式携带它使用的json编码最终编码为{name:jack,age:19}然后放在请求体中:param
requests.post(地址,json{name:jack,age:19})十、模拟登录
requests.post(http://www.aa7a.cn/user.php,datadata)print(res.text)
RequestsCookieJar对象响应头中得cookie如果正常登录这个cookie就是登录后的cookieres1
requests.get(http://www.aa7a.cn/,cookiesres.cookies)
requests.post(http://www.aa7a.cn/user.php,
session可以自动处理cookie不需要手动携带了import
requestssessionrequests.session()data
session.post(http://www.aa7a.cn/user.php,datadata)print(res.text)
{error:5}使用session对象就无需在请求中携带cookie会自动携带res1
session.get(http://www.aa7a.cn/)
使用requests模块1.发送请求request对象请求头请求参数请求体---》本质就是http请求--》被包装成一个对象2.响应回来response对象http响应--》cookie响应头响应体。
。
import
response对象有很多属性和方法headers{User-Agent:Mozilla/5.0
requests.get(https://www.jianshu.com/,headersheaders)#
响应体的二进制内容print(respone.status_code)
响应cookieprint(respone.cookies.get_dict())
cookieJar对象获得到真正的字段print(respone.cookies.items())
获得cookie的所有key和value值print(respone.url)
访问这个地址可能会重定向放了它重定向的地址print(respone.encoding)
---发现乱码---》请求回来的二进制---》转成了字符串---》默认用utf8转---》response.encodinggbk再打印res.text它就用gbk转码十三、下载图片
requests.get(https://img.zcool.cn/community/0186025d143ecaa8012051cd9c2eb7.jpg1280w_1l_2o_100sh.jpg)res
requests.get(https://pic.3gbizhi.com/uploads/20210611/a070a0d807c9042c9d123597d83797f0.jpg)res
requests.get(https://c-ssl.dtstatic.com/uploads/blog/202311/01/wgSLoQZi9oAPeg.thumb.1000_0.jpeg)#
res.iter_content(chunk_size1024):f.write(line)2.带有图片防盗链的图片地址以上是没有带图片防盗链的如果到了图片防盗链需要在请求头中添加一个referer参数里面写的是上次访问的地址headers
{Referer:https://www.tupianzj.com/}res
requests.get(https://img.lianzhixiu.com/uploads/allimg/220223/9-220223141210-51.jpg,headersheaders)with
res.iter_content():f.write(line)获取视频的操作同上面一样
http协议HTTP协议以明文方式发送内容不提供任何方式的数据加密。
HTTP协议不适合传输一些敏感信息https协议httpssl/tslhttps则是具有安全性的ssl加密传输协议。
HTTP
http安全可防止数据在传输过程中被窃取、改变确保数据的完整性http版本区别
0.9底层基于tcp每次http请求都是建立一个tcp连接三次握手请求结束需要四次挥手1.1请求头中有个参数Keep-alive,可以保证多个http请求公用一个TCP连接2.x多路复用多个请求使用同一个数据包-请求协议请求首行请求头地址请求方式http的版本请求头key-value请求体-响应协议响应首行响应状态码响应字符串描述响应头key-vaule响应状态码cookie响应体简单了解https比http多了ssl和tls协议多了一层处理加密信息的模块。
解决证书提示错误问题
requestsresponerequests.get(https://www.12306.cn,verifyFalse)
#不验证证书,报警告,返回200print(respone.status_code)
urllib3urllib3.disable_warnings()
#关闭警告responerequests.get(https://www.12306.cn,verifyFalse)print(respone.status_code)3.手动携带证书-了解
requestsresponerequests.get(https://www.12306.cn,cert(/path/server.crt,/path/key))print(respone.status_code)十五、超时设置异常处理上传文件
requests.get(https://www.baidu.com/,timeout0.0001)#
#可以查看requests.exceptions获取异常类型try:rrequests.get(https://www.baidu.com,timeout0.0001)except
通用方案print(Error)3.上传文件files{file:open(ju.jpg,rb)}responerequests.post(http://httpbin.org/post,filesfiles)print(respone.status_code)十六、使用代理
免费代理池:https://github.com/jhao104/proxy_pool原理有些网站提供免费的代理--》爬虫技术---》爬取别人的免费代理--》验证过后---》自己用import
requests.get(http://demo.spiderpy.cn/get/?typehttps)print(res.json())print(res.json()[proxy])#
111.177.63.86:8888headers{User-Agent:Mozilla/5.0
requests.get(https://www.jianshu.com/,headersheaders,proxies{https:res.json()[proxy]})print(respone.text)
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback