网站开发电子书网站ip地址 转向域名

news/2025/9/30 12:32:14/文章来源:
网站开发电子书,网站ip地址 转向域名,百度快照 如何抓取网站,wordpress调用排序从大到小内容简要 1分析网站 2简单爬取 3进阶自定义爬取 4保存进数据库 学校基础设施太差#xff0c;宿舍电量过低提醒虽然贴在楼下#xff0c;但是作为低头一族#xff0c;经常忘记看提醒导致宿舍酣战时突然黑屏#xff0c;为了避免这种尴尬的场景以及强化PY学习#xff0c;我决定…内容简要 1分析网站 2简单爬取 3进阶自定义爬取 4保存进数据库 学校基础设施太差宿舍电量过低提醒虽然贴在楼下但是作为低头一族经常忘记看提醒导致宿舍酣战时突然黑屏为了避免这种尴尬的场景以及强化PY学习我决定制作一个简单的爬虫。 首先我通过学校的微信公众号找到了一个十分隐蔽的查低电量提醒网站。它的界面是这样的手机适应的页面当然在电脑上会有一些崩。但是不要介意我们要的是功能。下面是查询到的界面虽然看起来low而且经常不更新但是它至少能用。于是我决定用它来制作低电量提醒查询脚本。审查元素我们可以发现宿舍区域  楼号  宿舍号  截止时间  剩余电量  完整表单信息 简化重要的部分可以看出这个表单有用的信息有如下代码简化版HTML 提取完以后感觉难度就降低了不少。但是只用填前3个空就能查询到。我觉得后几个空可能会设定一些防止爬取的障碍我使用审查元素中自带的查询network功能看了一下。在一个post方法中我找到了如下数据------WebKitFormBoundaryOJwEBCeqt5bb9jEZ Content-Disposition: form-data; namekindId 9 ------WebKitFormBoundaryOJwEBCeqt5bb9jEZ Content-Disposition: form-data; namesearch.text0北区------WebKitFormBoundaryOJwEBCeqt5bb9jEZ Content-Disposition: form-data; namesearch.text1 3 ------WebKitFormBoundaryOJwEBCeqt5bb9jEZ Content-Disposition: form-data; namesearch.text2 537 ------WebKitFormBoundaryOJwEBCeqt5bb9jEZ Content-Disposition: form-data; namesearch.text3 ------WebKitFormBoundaryOJwEBCeqt5bb9jEZ Content-Disposition: form-data; namesearch.text4 ------WebKitFormBoundaryOJwEBCeqt5bb9jEZ Content-Disposition: form-data; namesearch.text5 ------WebKitFormBoundaryOJwEBCeqt5bb9jEZ-- Post 数据 这跟我之前见到的post格式不同上网查了一下这是一种叫做multipart/form-data格式的post它能把post信息以二进制形式发送过去所以还能用来传送文件。做个小脚本还能学到这样的新知识。阅历1. 根据它的基本信息。我写了如下的代码来post并抓取得到的网页全内容#-*- coding: utf-8 -*- importurllib2importurllib urlhttp://hqsz.ouc.edu.cn/houqin/store/findone.actionboundary---------------------------12174501422663 #分隔符 data [] data.append(--boundary) data.append(Content-Disposition: form-data; namekindId) data.append() data.append(9) data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text0) data.append() data.append(北区) data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text1) data.append() data.append(3) data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text2) data.append() data.append(537) data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text3) data.append() data.append() data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text4) data.append() data.append() data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text5) data.append() data.append() data.append(--boundary--) data.append() httpbody\r\n.join(data)printtype(httpbody) content_typemultipart/form-data; boundary%s %boundaryprintcontent_type requrllib2.Request(url,httpbody) req.add_header(Accept,text/html,application/xhtmlxml,application/xml;q0.9,*/*;q0.8) req.add_header(User-Agent,Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:46.0) Gecko/20100101 Firefox/46.0) req.add_header(Referer,http://hqsz.ouc.edu.cn/houqin/store/findmessage.action?kindId9) req.add_header(Content-Type, content_type ) req.add_header(Accept-Language,zh-CN,en-US;q0.7,en;q0.3) req.add_header(Accept-Encoding,gzip, deflate) req.add_header(Connection,keep_alive) responseurllib2.urlopen(req) htmlresponse.read()print html 抓取网页 这段代码分为2个部分前半部分是表单生成。后半部分是模拟浏览器头虽然这个网站并不会检测但是为了学习还是要写这一部分强化记忆。对于表单生成这部分我得到了如下的公式对于multipart/form-data这样的信息一般可以用如下格式这其中的data.append()是必加的图省事省略掉就错了。 这样的代码只能针对一个人的不能由用户输入这样感觉很不好于是我选择加上用户输入。先把以上函数封装成一个函数Search_e(eara,house,room); 之后在py中调用这个函数就行了代码如下#-*- coding: utf-8 -*-#encoding: utf-8 importurllib2,reimporturllibdefSearch_e(eara,house,room):#post的目标地址 urlhttp://hqsz.ouc.edu.cn/houqin/store/findone.action #设置post的数据 boundary---------------------------12174501422663 #分隔符 data [] data.append(--boundary) data.append(Content-Disposition: form-data; namekindId) data.append() data.append(9) data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text0) data.append() data.append(eara)#查询房间所在区域 #data.append(北区) data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text1) data.append()#查询房间所在的楼号 data.append(house) data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text2) data.append()#查询房间的房间号 data.append(room) data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text3) data.append() data.append() data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text4) data.append() data.append() data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text5) data.append() data.append() data.append(--boundary--) data.append() httpbody\r\n.join(data)#以上部分就是查询信息的表单 content_typemultipart/form-data; boundary%s %boundary#print data #检验表单数据 req urllib2.Request(url,httpbody) req.add_header(Content-Type, content_type ) req.add_header(Accept-Language,zh-CN,en-US;q0.7,en;q0.3) req.add_header(Accept-Encoding,gzip, deflate)#req.add_header(Connection,keep_alive) response urllib2.urlopen(req) htmlresponse.read() unicodePagehtml.decode(utf-8) patternur([\s\S]*?)\/strongresultre.findall(pattern,unicodePage,re.S)try:if(result[11]):print u剩余电量,result[11],u请及时交电费 except:print u电量充足eararaw_input(请输入区域(北区东区南区):) earaeara.decode(gbk).encode(utf-8) #将输入的Gbk字符转化为utf-8字符 houseraw_input(请输入楼号(例如1号楼1):) roomraw_input(请输入房间号(例如110房间:110):) Search_e(eara,house,room) 用户自定义友好 光查询还不能满足我我还想知道最近的用电情况我决定把他们保存在数据库中进行分析。 于是我更换了如下代码#-*- coding: utf-8 -*-#encoding:utf-8 importurllib2,reimporturllibimportMySQLdb as dbdefSearch_e(eara,house,room):#post的目标地址 urlhttp://hqsz.ouc.edu.cn/houqin/store/findone.action #设置post的数据 boundary---------------------------12174501422663 #分隔符 data [] data.append(--boundary) data.append(Content-Disposition: form-data; namekindId) data.append() data.append(9) data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text0) data.append()#data.append(eara) #查询房间所在区域 data.append(北区) data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text1) data.append()#查询房间所在的楼号 data.append(house) data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text2) data.append()#查询房间的房间号 data.append(room) data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text3) data.append() data.append() data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text4) data.append() data.append() data.append(--boundary) data.append(Content-Disposition: form-data; namesearch.text5) data.append() data.append() data.append(--boundary--) data.append() httpbody\r\n.join(data)#以上部分就是查询信息的表单 content_typemultipart/form-data; boundary%s %boundary#print data #检验表单数据 req urllib2.Request(url,httpbody) req.add_header(Content-Type, content_type ) req.add_header(Accept-Language,zh-CN,en-US;q0.7,en;q0.3) req.add_header(Accept-Encoding,gzip, deflate)#req.add_header(Connection,keep_alive) response urllib2.urlopen(req) htmlresponse.read() unicodePagehtml.decode(utf-8) patternur([\s\S]*?)\/strongresultre.findall(pattern,unicodePage,re.S)try:return result[11]except:return 20.0connection db.connect(hostlocalhost,userroot,passwdroot,dboucect,port3306,init_commandset names utf8) cursorconnection.cursor() cursor.execute(select * from rooms); resultcursor.fetchall() cursor.close() connection.close()printresultfor item inresult: aeraitem[3] house item[1] room item[2] numSearch_e(aera,house,room) connection db.connect(hostlocalhost,userroot,passwdroot,dboucect,port3306,init_commandset names utf8) cursorconnection.cursor() cursor.execute(update rooms set ect numwhere idstr(item[0])); connection.commit(); cursor.close(); connection.close(); 保存数据库版本 现在这样就可以保存进数据库了但是这个网站几乎是7-5天更新一次我现在还不会计划任务爬取网页进行分析我要学习的还有很多现在一个用C#写出来的自动发邮件的小程序已经完成。我相信我就能够一点一点变成大神的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922833.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JUC: synchronized与锁升级

4.10.1 面试题谈谈你对synchronized的理解 synchronized的锁升级机制是什么? 偏向锁和轻量锁有什么区别?高并发时,同步调用应该去考量锁的性能损耗。能用无锁的数据结构,就不要用锁。能用锁块,就不要锁整个方法体…

cron表达式,每月1号凌晨3点执行和每周4凌晨3点半执行

cron表达式,每月1号凌晨3点执行和每周4凌晨3点半执行cron表达式,每月1号凌晨3点执行和每周4凌晨3点半执行 1.每月1号凌晨3点执行的Cron表达式为:0 0 3 1 * ? 每个月1号 凌晨3点   0 0 3 1 * ? 和 0 0 3 1 …

学python的第8天

学python的第8天字符编码 水导链接——字符编码 水导链接——Python2和3字符编码的区别 文件基本操作 从硬盘中读取数据、写入数据 水导链接——文件基本操作 绝对路径和相对路径 水导链接——绝对路径和相对路径 文件…

2025.9.30

坐火车回家

lang / philipino / feilvbin / taglog / tajialu

s菲语 翻译magandang tanghali 下午好end

C#/.NET/.NET Core技术前沿周刊 | 第 56 期(2025年9.22-9.28)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与…

漳州做网站建设的公司做网站 赚广告费

作为当下大语言模型的典型代表,ChatGPT对人类学习方式和教育发展所产生的变革效应已然引起了广泛关注。技术的快速发展在某种程度上正在“倒逼”教育领域开启更深层次的变革。在此背景下,教育从业者势必要学会准确识变、科学应变、主动求变、以变应变&am…

US$249 Autek IKEY820 New License for GM, Grand Cheokee and Dodge Durango Key Programming

Autek IKEY820 New License for GM, Grand Cheokee and Dodge Durango Key ProgrammingWith this license, Autek IKEY820 can support new car models as below:1. Added 2018 Buick LaCrosse Pincode and Key Progra…

Estun机器人数据断电保持问题解决方案

Estun机器人数据断电保持问题解决方案要数据断电保持: 1.变量必须为全局变量 2.用等号做赋值运算

天津港口海鲜之旅全攻略(2025最新版)

🦀 天津港口海鲜之旅全攻略(2025最新版) 天津不仅是工业重镇,更是海鲜爱好者的天堂!每年9月开海后,正是吃海鲜、出海捕鱼的黄金时节。以下是为你整理的天津港口海鲜之旅全攻略,涵盖出海码头、海鲜购买、美食推…

tomcat创建bat启动,结合任务计划实现自动重启tomcat服务 - 详解

tomcat创建bat启动,结合任务计划实现自动重启tomcat服务 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "C…

如何从安卓手机恢复手机照相机消失的相机照片?(6个高效办法)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

实用指南:【论文精读】Few-Shot Object Detection with Attention-RPN and Multi-Relation Detector

实用指南:【论文精读】Few-Shot Object Detection with Attention-RPN and Multi-Relation Detectorpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: bloc…

网站开发实战asp制作视频教程wordpress用户积分

类似问题答案我是自动化专业的学生,大一的时候有没有必要考计算机二级证书计算机二级 虽然不是很重要 但是考了也是有好处的 自动化的跟计算机联系非常大 二级证不怎么重要 但是C语言很重要 对于你们 希望你还是去考个二级作为学习建筑类专业的学生,如果考试计算机二…

Chromium V8类型混淆漏洞CVE-2025-10585安全分析

微软安全响应中心发布关于Chromium V8引擎类型混淆漏洞CVE-2025-10585的安全公告。该漏洞已被在野利用,基于Chromium的Microsoft Edge浏览器已通过更新修复此漏洞。本文详细介绍了漏洞影响范围和版本信息。CVE-2025-1…

US$47.5 B48 MSV90 ISN Reading via OBD Authorization for Yanhua Mini ACDP

MSV90 ISN Reading via OBD Authorization for Yanhua Mini ACDPYou are offering to pay for MSV90 authorization alone, to work with your Yanhua ACDP.If you buy both Yanhua DME B48 Integrated Interface Boar…

免费电商网站模板海尔商城网站建设维护

等差数列划分 思路: 经验题目要求 dp[i]表示:以 i 位置为结尾的所有子数组中有多少个等差数列 状态转移方程 对 dp[i] 位置,数列至少有三个元素,如果相邻三个为等差数列,dp[i] dp[i-1] 1; 如果相邻三个不为等差数…

可以做系统同步时间的网站广东网页制作二级考试题目

程序员并不是没有一点乐趣整天枯燥无味的游走在代码中的,在这里给大家提供了一个表白代码 功能描述: 1:能够计算任意两个时间的之间相隔的天数,2:在相隔天数下面输出心形并且心形里面还有英文我爱你字样。相信你已经迫…

Claude 4.5 刚刚发布,能连肝 30 多个小时,史上最卷 AI 诞生

Claude 4.5 刚刚发布,能连肝 30 多个小时,史上最卷 AI 诞生论卷编程,还得看 Claude。 就在刚刚,Anthropic 正式发布 Claude Sonnet 4.5。先说 Claude Sonnet 4.5 交出的成绩单,在考察真实编程水平的 SWE-bench Ve…

香橙派5pro驱动开发(一)

前言前段时间买了一个orangepi5pro开发板,准备学习驱动开发,但是网上教程基本都需要在自己电脑安装虚拟机,下载内核源码,编译内核后才能进行驱动开发,但我想直接在【开发板】上进行开发,不采用虚拟机!!!环境准…