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

重庆专业网站营销杭州公司注册地址可以是住宅吗

重庆专业网站营销,杭州公司注册地址可以是住宅吗,最新新闻热点事件20239月,站长工具ip地址查询Flask框架小程序后端分离开发学习笔记《4》向服务器端发送模拟请求-爬虫 Flask是使用python的后端#xff0c;由于小程序需要后端开发#xff0c;遂学习一下后端开发。 下面代码#xff0c;是一个比较老的版本了#xff0c;可以借鉴一下。 import socket import ssldef p…Flask框架小程序后端分离开发学习笔记《4》向服务器端发送模拟请求-爬虫 Flask是使用python的后端由于小程序需要后端开发遂学习一下后端开发。 下面代码是一个比较老的版本了可以借鉴一下。 import socket import ssldef parsed_url(url):#检查协议protocol httpif url[:7] http://:u url.split(://)[1]elif url[:8] https://:protocol httpsu url.split(://)[1]else:#:/l 定位然后取第一个/的位置来切片u url# 经过这样url中的协议被切掉了注意切片后数组下标由0开始# 例如 https://www.baidu.com:2024/apple# 切除后 www.baidu.com:2024/apple# 检查默认pathi u.find(/)if i -1:host upath /else:host u[:i]path u[i:]# 这一步处理过后# host www.baidu.com:2024# path apple# 检查端口# 默认端口port_dict {http: 80,https: 443,}# 非默认端口port port_dict[protocol]if : in host:h host.split(:)# print(h) 测试用当控制台说哪有问题阔以尝试使用打印大法看看是啥问题host h[0]port int(h[1])return protocol, host, port, path#以下test开头的函数是单元测试 def test_parsed_url():#parsed_url函数很容易出错所以我们写测试函数来运行看检测是否正确运mhttp httphttps httpshost g.cnpath /test_items [(http://g.cn, (http,host,80,path)),(http://g.cn/, (http,host,80,path)),(http://g.cn:90,(http, host,90,path)),(http://g.cn:90/, (http,host, 90,path)),# 这里面的都是典型测试用例即可(https://g.cn, (https,host,443,path)),(https://g.cn:233/,(https,host,233,path)),]for t in test_items:url, expected tu parsed_url(url)# assert是一个语句名字叫断言# 如果断言成功条件成立则通过测试否则为测试失败中断程序报错e parsed_url ERROR{}{}{}.format(url,u,expected)assert u expected, e # 如果u expected为true就没问题继续否则就会中断然后打印e# print(test_parsed_url测试通过)def socket_by_protocol(protocol,host):# 根据协议返回一个socket实例s socket.socket()if protocol https:# 创建一个默认的SSL上下文环境context ssl.create_default_context()# 使用SSL上下文环境来包装socket对象s context.wrap_socket(s, server_hostnamehost)return sdef response_by_socket(s):# 持续接收响应返回响应的byte型# 参数是一个socket实例# 返回这个socket读取的所有数据response bbuffer_size 1024while True:r s.recv(buffer_size)if len(r) 0:breakresponse rreturn responsedef parsed_response(r):# 把response解析出状态码headers body返回# 状态码是int# headers 是dict# body是strheader, body r.split(\r\n\r\n,1) # \r\n\r\n是其分界线h header.split(\r\n) # 就会切分很多行 例如HTTP/1.1 301 Moved Permanentlystatus_code h[0].split()[1] # h[0]就是响应行 status_code301 按照空格切分status_code int(status_code)headers {}for line in h[1:]: # 把响应Header部分每一行都存成字典k, v line.split(: )headers[k] vreturn status_code, headers, bodydef get(url):# 用GET请求url并返回响应protocol,host,port,path parsed_url(url)# 因为协议不一样socket实例构建方式不同s socket_by_protocol(protocol,host)s.connect((host,port))request GET HTTP/1.1\r\nhost: {}\r\nconnectibn: close\r\n\r\n.format(path,host)encoding utf-8s.send(request.encode(encoding))response response_by_socket(s)r response.decode(encoding)# 利用parsed_response处理接收到的响应分别得到想要的东西status_code, headers, body parsed_response(r)if status_code in [301, 302]: # 301、302说明是需要重定向url headers[Location]return get(url)return status_code, headers, bodydef test_get():# 测试是否能正确处理HTTP和HTTPSurls [http://movie.douban.com/top250,https://movie.douban.com/top250,]# 这里就直接调用了get如果出错就会挂测试得比较简单for u in urls:status_code, headers, body get(u)print(status_code,headers,body)def test():# 用于测试的主函数test_parsed_url()test_get()# test_parsed_response()if __name__ __main__:test()# main()# 代码注意模块化写what不写how不写具体怎么实现具体怎么实现就封装起来 最后尝试请求豆瓣的网页并未得到我怀疑是有反爬手段我们的请求数据还有很多东西没加进去所以看起来不像是浏览器发送的请求后续会继续学习解决这个问题。
http://www.dnsts.com.cn/news/219011.html

相关文章:

  • ps设计师网站有哪些php网站建设价格
  • 软件开发和网站建设淘宝运营培训教程
  • 重庆南岸营销型网站建设价格建设网站应该加什么服务
  • 仿一个网站wordpress响应式商场
  • 团风网站建设做受视频网站
  • 南通网站定制企业做软件开发的网站有哪些
  • 深圳规划建设局网站海南网上办事大厅官网
  • 建站之星怎么收费白银市城乡建设局网站庞馨妩
  • 商城网站有哪些功能高级网站建设费用
  • 珠海正规网站制作哪家强商城推广软文范文
  • 东莞网站推广及优化cfa一级看多久两分钟
  • 网站建设论文的摘要WordPress5.0新功能
  • 网站建设与规划方向网站开发怎么接入支付宝
  • qq排名优化网站石家庄建站平台
  • 服装网站建设物流配送系统网站建设活动海报
  • 北京办公用品网站建设wordpress商城汉化主题
  • 乌拉圭网站后缀广州百度网站搭建
  • 网站色彩策划ppt模板下载简约
  • 盐边网站建设常见的网络推广方式有哪些
  • 网站开发先写后端先写前端百度网盘电话人工服务
  • 吉林华商建设集团网站建设专业网站价格
  • 太原网站建设 世纪优创网站建设歺首选金手指12
  • 网站前置审批 公司名称2345影视下载官网电视剧
  • 中型网站每天访问量如何做网站推广获客
  • 旅游网站建设报价单罗湖商城网站建设多少钱
  • 酒店网站建设研究网站开发与设计难嘛
  • 均安网站制作网络推广培训一对一
  • 杭州网站推广优化哪里好网站引导页是什么
  • 7k7k小游戏网页北京seo顾问外包
  • 做创意礼品定制的网站个人网站怎么做联盟推广