当前位置: 首页 > news >正文

温州网站建设和推广怎么做死循环网站

温州网站建设和推广,怎么做死循环网站,东莞寮步二手车交易市场,做网站弄什么语言文章目录 一、什么是爬虫#xff1f;二、爬虫基本流程三、requests模块介绍四、requests模块发送Get请求五、Get请求携带参数六、携带请求头七、发送post请求八、携带cookie方式一#xff1a;放在请求头中方式二#xff1a;放在cookie参数中 九、post请求携带参数十、模拟登… 文章目录 一、什么是爬虫二、爬虫基本流程三、requests模块介绍四、requests模块发送Get请求五、Get请求携带参数六、携带请求头七、发送post请求八、携带cookie方式一放在请求头中方式二放在cookie参数中 九、post请求携带参数十、模拟登录方式一方式二 十一、session对象十二、响应response对象十三、下载图片十四、ssl认证十五、超时设置异常处理上传文件十六、使用代理 一、什么是爬虫 爬虫就是程序从互联网中各个网站上爬取数据做数据清洗再入库。 本质原理 从技术层面来说就是通过程序模拟浏览器请求站点的行为把站点返回的HTML代码/JSON数据/二进制数据(图片、视频等)爬取到本地进而提取自己需要的数据存放起来使用 通俗的说就是通过模拟发送http请求从而去别人的服务端获取数据然后把获取的数据入库 爬虫是否合法 爬虫有爬虫协议(是一个君子协议)每个网站根路径下都有robots.txt这个文件规定了该网站哪些可以爬取哪些不能爬取 SEO与SEM的区别和联系 二、爬虫基本流程 用户获取网络数据的方式 方式1浏览器提交请求—下载网页代码—解析成页面方式2模拟浏览器发送请求(获取网页代码)—提取有用的数据—存放到数据库或文件中 而爬虫就是使用 方式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请求 安装reqeusts模块 pip install requests四、requests模块发送Get请求 import requestsres requests.get(https://www.cnblogs.com/)# print(res) # Response [200]print(res.text) # http响应体文本内容如果有的网站发送请求后不返回数据或者拦截这是别人做了反扒# http请求:请求头中没带东西没带cookie客户端类型referer....res requests.get(https://dig.chouti.com/)print(res.text)五、Get请求携带参数 import requests方式一直接拼到路径中res 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# print(res.text) # 响应体内容URL编码与解码 从地址栏里拿出数据 都会被URL进行编码和解码from urllib.parse import quote,unquote # 内置模块info quote(上海) # 编码print(info) # %E4%B8%8A%E6%B5%B7info1 unquote(%E4%B8%8A%E6%B5%B7) # 解码print(info1) # 上海六、携带请求头 http请求中请求头中有一个很重要的参数 :User-Agent,如果向后端发送请求没有带这个请求头后端就禁止访问。大多网站没有携带该参数就被禁止了。 用户代理User Agent简称 UA是一个特殊字符串头使得服务器能够识别客户使用的操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。 import requestsheaders {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36}res requests.get(https://dig.chouti.com/,headersheaders)def request(method, url, **kwargs)::param headers: (optional) Dictionary of HTTP Headers to send with the :class:Request.print(res.text)User-Agent客户端类型有浏览器、手机端浏览器、爬虫类型程序scrapy一般伪造成浏览器我们去爬某个网站发送请求不能正常返回数据说明模拟的不够像需要携带参数只要参数对应上就能返回相应的数据。 一般网站可以通过Referer来做反扒如果要登录模拟向登录接口发请求正常操作必须在登录页面上才能干这事。如果没有携带referer它就认为你是恶意的就会拒绝。 七、发送post请求 import requestsheaders {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36,Cookie:iJ9flkdsjaxxxx...}data {linkId:41569712,} # 发送请求携带的文章idres requests.post(https://dig.chouti.com/link/vote,headersheaders,datadata)print(res.text) # {data:4,code:200,success:true}八、携带cookie 方式一放在请求头中 模拟抽屉网点赞信息import requests是否登录---》有个标志1 前后端混合项目---》登录信息--放在cookie中了2 前后端分离项目---》登录信息--》后端规定的--》放在请求头的headers {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36,Cookie:deviceIdweb.eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9flkdsjaxxxx...}data {linkId:41569712,} # 发送请求携带的文章idres requests.post(https://dig.chouti.com/link/vote,headersheaders,datadata)print(res.text) # {data:4,code:200,success:true}方式二放在cookie参数中 通过cookie参数因为cookie很特殊一般都需要携带模块把cookie单独抽取成一个参数是字典类型以后可以通过参数传入headers {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36,}data {linkId:41569712,} # 发送请求携带的文章idcookie {token:eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9xxxxx} # cookies格式都是字典格式 按照输入即可res requests.post(https://dig.chouti.com/link/vote,headersheaders,datadata,cookiescookie)print(res.text) # {data:5,code:200,success:true}九、post请求携带参数 import requestspost请求三种编码方式json、Urlencoded、form-data方式一data参数# 咱们以data字典形式携带它使用的Urlencoded编码最终编码为namejackage19然后放在请求体中:param data: (optional) Dictionary, list of tuples, bytes, or file-like\res requests.post(地址,data{name:jack,age:19})# res requests.post(地址,databnamejackage19)方式二json编码# 咱们以json字典形式携带它使用的json编码最终编码为{name:jack,age:19}然后放在请求体中:param json: (optional) A JSON serializable Python object to send in the body of the :class:Requestres requests.post(地址,json{name:jack,age:19})十、模拟登录 方式一 先发送错误登录请求 看返回数据是否对错 输入对的密码 获取cookie 通过Cookie登录import requestsdata {username: jack,password: 123,captcha: 111,remember: 1,ref: http://www.aa7a.cn/, # 登录成功重定向到这个地址act: act_login}res requests.post(http://www.aa7a.cn/user.php,datadata)print(res.text) # {error:5}print(res.cookies) # RequestsCookieJar对象响应头中得cookie如果正常登录这个cookie就是登录后的cookieres1 requests.get(http://www.aa7a.cn/,cookiesres.cookies) # 访问首页携带cookieprint(jack in res.text)方式二 data {username: xxxxx,password: xxxxx, # 错误的 请求码是 error 5 正确的是0captcha: cccc,remember: 1,ref: http://www.aa7a.cn/,act: act_login}res requests.post(http://www.aa7a.cn/user.php, json {key: Value})十一、session对象 # http 请求每次都是一个新的---》cookie需要自己处理携带# session可以自动处理cookie不需要手动携带了import requestssessionrequests.session()data {username: jack,password: 123,captcha: 111,remember: 1,ref: http://www.aa7a.cn/, # 登录成功重定向到这个地址act: act_login}res session.post(http://www.aa7a.cn/user.php,datadata)print(res.text) # {error:5}使用session对象就无需在请求中携带cookie会自动携带res1 session.get(http://www.aa7a.cn/) # 自动保持登录状态自动携带cookieprint(jack in res.text) 十二、响应response对象 使用requests模块1.发送请求request对象请求头请求参数请求体---》本质就是http请求--》被包装成一个对象2.响应回来response对象http响应--》cookie响应头响应体。。import requests# response对象有很多属性和方法headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36}respone requests.get(https://www.jianshu.com/,headersheaders)# respone属性print(respone.text) # 响应体的文本内容print(respone.content) # 响应体的二进制内容print(respone.status_code) # 响应状态码print(respone.headers) # 响应头print(respone.cookies) # 响应cookieprint(respone.cookies.get_dict()) # cookieJar对象获得到真正的字段print(respone.cookies.items()) # 获得cookie的所有key和value值print(respone.url) # 请求地址print(respone.history) # 访问这个地址可能会重定向放了它重定向的地址print(respone.encoding) # 页面编码# 有的网站打印res.text ---发现乱码---》请求回来的二进制---》转成了字符串---》默认用utf8转---》response.encodinggbk再打印res.text它就用gbk转码十三、下载图片 1.没有带图片防盗链的图片地址res 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)# print(res.content)with open(feng.jpg,wb) as f:f.write(res.content)with open(chognwu.jpg, wb) as f:for line in 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 open(ju.jpg,wb) as f:for line in res.iter_content():f.write(line)获取视频的操作同上面一样 十四、ssl认证 http协议HTTP协议以明文方式发送内容不提供任何方式的数据加密。HTTP协议不适合传输一些敏感信息https协议httpssl/tslhttps则是具有安全性的ssl加密传输协议。HTTP SSL / TLS也就是在 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协议多了一层处理加密信息的模块。解决证书提示错误问题 1.不验证证书—加入verifyFalse import requestsresponerequests.get(https://www.12306.cn,verifyFalse) #不验证证书,报警告,返回200print(respone.status_code) # 2002.关闭警告 import requestsfrom requests.packages import urllib3urllib3.disable_warnings() #关闭警告responerequests.get(https://www.12306.cn,verifyFalse)print(respone.status_code)3.手动携带证书-了解 import requestsresponerequests.get(https://www.12306.cn,cert(/path/server.crt,/path/key))print(respone.status_code)十五、超时设置异常处理上传文件 import requests1.超时设置# res requests.get(https://www.baidu.com/,timeout0.0001)# print(res.text)2.异常处理from requests.exceptions import * #可以查看requests.exceptions获取异常类型try:rrequests.get(https://www.baidu.com,timeout0.0001)except ReadTimeout:print(--------)# except ConnectionError: #网络不通# print(-----)# except Timeout:# print(aaaaa)except RequestException: # 通用方案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 requestsres 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 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36}respone requests.get(https://www.jianshu.com/,headersheaders,proxies{https:res.json()[proxy]})print(respone.text)
http://www.tj-hxxt.cn/news/135107.html

相关文章:

  • 手机网站关于我们汕头网页设计公司
  • 组建网站 多少钱怎么用flashfxp上传wordpress
  • 网站建设开发软件教程深圳微商城网站制作公司
  • 海宁最火高端网站设计推荐新媒体营销和传统营销的区别
  • 大安移动网站建设西安霸屏推广
  • 常见的网站空间主要有查询网站是否过期
  • 钦州市住房和城乡建设局网站app网站推广平台
  • seo经验是什么wordpress网站seo
  • 做网站需要什么服务器配置安徽工程建设信用平台
  • 湛江专业网站建设重庆住房建设工程信息网官网
  • 中小企业网站建设调研报告萧山中兴建设有限公司网站
  • 乐清网站制作公司哪家好wordpress怎么做图文数据库
  • 已有网站可以做服务器吗南山企业网站建设
  • 英语卷子哪个网站可以做dw做旅游网站毕业设计模板下载
  • 连平网站建设陈铭生杨昭
  • 苏州企业网站公司都有哪些wordpress 模板 外贸
  • 网站建设的目标客户分析网站备案单位查询系统
  • 有关小城镇建设的网站自己建设个小网站要什么手续
  • 网站ip地址 转向域名网站的建设方法不包括什么
  • 网站的功能与建设方案安阳做网站优化
  • 行业展示类型网站网站设计制作的特点有哪些
  • 做医药商城网站的公司网站开发人员是什么
  • 徐州做网站河南春辉建设集团官方网站
  • 做网站空间不给账号密码赣州网站网站建设
  • 自己做模板网站什么叫网站权重
  • 南京建站推广公司网站策划ppt
  • 视频网站建设流程陈木胜
  • 一起合伙做项目的网站提高工作效率8个方法
  • 用asp做的几个大网站自己怎么创建网址
  • wordpress 4.8.6沈阳seo网站推广