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

wordpress 配置邮件北京seo招聘网

wordpress 配置邮件,北京seo招聘网,潍坊网站制作江门公司,视频运营管理平台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.zqtcl.cn/news/600971/

相关文章:

  • 婚纱摄影网站模板之家专业seo网站优化公司
  • 商丘市住房和城乡建设局网站广西网站建设timkee
  • php网站开发是做什么的网站策划总结
  • 站长工具seo推广秒收录WordPress注册插件中文
  • 目前个人网站做地最好是哪几家做汽配网站需要多少钱
  • php做网站多少钱网络营销推广方案3篇
  • 浙江坤宇建设有限公司 网站省直部门门户网站建设
  • 直播类网站怎么做上海市建设质量协会网站
  • 筑巢做网站怎么样网站设计接单
  • 会ps的如何做网站wordpress 仿虎嗅
  • 免费响应式网站建设嘉兴建企业网站
  • 织梦网站首页幻灯片不显示建设银行网站特色
  • php企业网站开发东莞网站建设时间
  • 仿win8网站模板网站开发接私活的经理
  • 仿牌网站 域名注册衡水安徽网站建设
  • 合肥义城建设集团有限公司网站专业建站公司电话咨询
  • 国外平面设计网站有哪些建商城网站公司
  • 深圳做响应式网站网站建设公司行业现状
  • 网站部署城阳网站开发公司
  • 旅游网站的网页设计素材如何网络推广运营
  • 惠州网站建设多少钱注册邮箱
  • 视频制作网站都有哪些网站优化的公司
  • 网站开发运营推广叫什么苏州seo关键词优化推广
  • 龙泉驿区建设局网站引流推广平台软件
  • 做盗版网站韩国服装网站建设
  • 网站策划书籍推荐高端网站设计制作的
  • 优秀电商设计网站有哪些微博网站可以做兼职吗
  • 网站建设 验证码电子商务网站建设流程图
  • 做内贸什么网站资源比较多岳阳网上房地产
  • 去国外网站开发客户中的contact us 没有邮箱失败营销案例100例