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

上海市建设安全协会成绩查询的网站宝塔 wordpress ssl

上海市建设安全协会成绩查询的网站,宝塔 wordpress ssl,南京广告公司装修,网页模板免费下载平台分析一下他们的代码#xff0c;我在浏览器中对应位置右键#xff0c;然后点击检查元素#xff0c;可以找到对应部分的代码。但是#xff0c;直接查看当前网页的源码发现#xff0c;里面并没有对应的代码。我猜测这里是根据服务器上的数据动态生成的这部分代码#xff0c;…分析一下他们的代码我在浏览器中对应位置右键然后点击检查元素可以找到对应部分的代码。但是直接查看当前网页的源码发现里面并没有对应的代码。我猜测这里是根据服务器上的数据动态生成的这部分代码所以我们需要找到数据文件以便向服务器申请得到这部分资源。在刚才查看元素的地方接着找数据文件在Network里面的文件中很顺利的就找到了并在报文中拿到了URL和请求方法。查看一下这个文件发现是JSON文件那样的话难度就又降低了因为Python中有json库解析json的能力很强。可以直接将json转换为字典和列表类型。在这里我简单介绍一下数据解析的过程吧。首先我将爬取到的json文本转换成某种数据类型具体由数据决定一般不是字典就是列表。查看类型发现是字典且字典中有三个key值而我们需要的key在一个叫data的key中。而data中的数据是一个学生信息的列表类型列表的每个元素都是一个字典包括学生姓名学号等信息。可以利用下标获取列表元素并用key值得到你想拿到的信息。比如利用Url得到网页链接。这时候我们爬取需要的信息的准备工作可以说是结束了我们拿到了数据的URL并且知道了数据类型和数据结构。于是我们只需要用requests库爬一下这个页面然后用json解析一下并且筛选有用的信息就好了。(没用到BeautifulSoup和re库有点小失落)接下来就是创建文件就没有什么难度了。只是在为每个学生创建文件的时候注意一下创建好以后及时的回到上层目录否则可能会让文件一层层的嵌套下去。代码#-*- coding:utf-8 -*-importrequestsimportjsonimportos#抓取页面url https://edu.cnblogs.com/Homework/GetAnswers?homeworkId2420_1542959851766try:r requests.get(url,timeout20)r.raise_for_status()r.encodingr.apparent_encodingexcept:print(网络异常或页面未找到请重试)#利用json拿到数据列表每个列表元素都是字典datas json.loads(r.text)[data]result #数据处理for data indatas:result str(data[StudentNo]),data[RealName],data[DateAdded].replace(T, ),data[Title],data[Url]\n#写入文件with open(hwlist.csv,w) as f:f.write(result)#创建文件夹hwFolderos.mkdir(hwFolder)os.chdir(hwFolder)#创建每个学生的作业文件for data indatas:#创建目录os.mkdir(str(data[StudentNo]))os.chdir(str(data[StudentNo]))#抓取页面try:webmsg requests.get(data[Url],timeout20)webmsg.raise_for_status()webmsg.encodingwebmsg.apparent_encodingexcept:print(网络异常或页面未找到请重试)#保存抓到的页面with open(str(data[StudentNo]).html,wb) as f:f.write(webmsg.content)os.chdir(os.path.pardir)部分结果展示上图是hwlist.csv文件的部分结果(Excel下打开)玩个稍复杂点的像之前那样爬取页面的话其实是有点问题的。首先我们只是爬取了页面的内容但是并没有抓取到页面的样式页面显示会不太正常排版混乱。其次页面中还有图片等元素都不会显示出来。而且如果遇到网络问题代码需要再次运行的时候还会遇到一个问题那就是目录已经存在了我们在创建目录就会失败。除此之外还是有不少问题的此处我先解决之前说到的几个问题。即显示问题和目录问题。如何解决我提到的这些问题呢目录问题我使用了一种比较容易实现的方案那就是先判断当前目录是否存在如果不存在就创建目录否则就什么都不做。至于文件暂定的方法是直接覆盖。显示问题也比较好解决抓取网页和抓取样式或者网页其实都一样就是用URL发送一个请求来获得这个资源其实和抓取HTML相比就是文件格式不太一致。以抓取样式表(CSS)为例样式的URL怎么获取呢有一些样式是在一个叫做Link的标签的href属性里这里面就是外联样式存储的位置。把它提取出来请求这个样式并且修改原来的href属性为抓到的文件在自己电脑上的保存位置即可。这样的话即可保证抓到的CSS可以正常使用确保排版正确。当然了即使这样和原本的网页也是有差别的因为抓取到的资源还是不够和浏览器中获得的元素对比一下就会发现还差不少。鉴于本人能力有限这里就补充一下爬取外联CSS和图片的内容感兴趣的可以看一看。Tips这里解析HTML页面借助了强大的BeautifulSoup4库(解析标签和玩一样)和re库使工作量减少了不少。(安装bs4库: pip install BeautifulSoup4)#-*- coding:utf-8 -*-importrequestsimportjsonimportosimportrefrom bs4 importBeautifulSoupdef getHtml(url,timeout110):try:resrequests.get(url,timeout)res.raise_for_status()res.encodingres.apparent_encodingreturnresexcept:print(网络异常,url爬取失败)def saveFile(name,content,modew):try:with open(name,mode) as f:f.write(content)except:print(文件name创建失败)defgetSource(text):#抓取样式root_url https://www.cnblogs.comsoup BeautifulSoup(text,html.parser)for i in soup(link):css_list [css for css in i[href].split(/) if css incss]if css_list![]:filename re.search(r.*css,css_list[0]).group(0)r requests.get(root_urli[href])saveFile(filename,r.content,wb)text text.replace(i[href],Source/filename)#抓取图片 用户自己插入的图片和网站自己生成的图片都抓#用户自己插的那些格式很乱……用户自己搞的东西就是个坑for i in soup(img):try:img_list [img for img in i[src].split(/) if gif in img or png in img or jpeg inimg]except KeyError :#某用户自己改了HTML代码 得让我单独判断一下img_list []if img_list![]:filenameimg_list[0]try:r requests.get(root_urli[src])r.raise_for_status()except:if not http in i[src]:r requests.get(https:i[src])else:#又是某用户写博客用了HTML编辑器写的还不对r requests.get(i[src])saveFile(filename,r.content,wb)text text.replace(i[src],Source/filename)#text用于修改原始的页面链接保证本地可以正常查看页面returntext#############################主程序#############################抓取页面 并得到数据r getHtml(https://edu.cnblogs.com/Homework/GetAnswers?homeworkId2420_1542959851766)datas json.loads(r.text)[data]#处理数据并将数据写入文件result for data indatas:result str(data[StudentNo]),data[RealName],data[DateAdded].replace(T, ),data[Title],data[Url]\nsaveFile(hwlist.csv,result,w)#创建文件夹hwFolderif not os.path.exists(hwFolder):os.mkdir(hwFolder)os.chdir(hwFolder)#创建每个学生的作业文件for data indatas:#创建目录if not os.path.exists(str(data[StudentNo])):os.mkdir(str(data[StudentNo]))os.chdir(str(data[StudentNo]))#抓取页面webmsg requests.get(data[Url])print(当前的URLdata[Url])#等待的过程有字出来不会无聊#页面的一些资源if not os.path.exists(Source):os.mkdir(Source)os.chdir(Source)webtextgetSource(webmsg.text)os.chdir(os.path.pardir)saveFile(str(data[StudentNo]).html,webtext.encode(),wb)os.chdir(os.path.pardir)如果你的网络没问题讲道理应该不会抛异常。接下来找个页面看看效果吧排版抓出来了挺炫的当然图片也抓了。考虑到有人会HTML我把被程序调整后的HTML代码找一个给大家看看箭头指向的地方都是程序自己改过的地方其实虽然现在又和原页面接近了不少但是……我暂时没有时间继续完善了以后还会继续完善。给大家一个原博客的图片你会我先我还是少了些东西。暂时先这样吧。
http://www.zqtcl.cn/news/477921/

相关文章:

  • 视频运营管理平台长沙网站seo技术
  • 网站建设有哪些规章制度网页版面
  • 海伦网站建设做网站建设的联系电话
  • 免费做字体的网站枣强网站建设代理
  • 建设网站素材海南百度推广公司电话
  • 温州企业网站建设费用培训行业门户网站建设方案
  • 口碑好的常州网站优化深圳市光明区实验学校
  • 网站怎么做微博认证网页设计代码html作品展示
  • 在线网站建设活动初创企业的建站流程
  • 汨罗哪里有网站开发的公司电话百度首页关键词推广
  • 天津百度整站优化服务政务网站模版
  • 推荐家居企业网站建设用什么工具修改wordpress
  • wix做的网站能扒下来哈尔滨做网站的oeminc
  • 做网站的网络公司门户网站介绍
  • 软件公司网站系统集成建设下拉关键词排名
  • 景翔物流网站建设公司企业网站优化排名
  • 余姚做网站62752762素材网站建设需要多少费用
  • dede网站后台导入文档许昌网站开发哪家好
  • 网站建设宣传psdwordpress 链接关系
  • 宁波网站建设免费咨询深圳做棋牌网站建设找哪家公司好
  • 安阳门户网站html5网页代码
  • 企业建站系统下载广州有几个区几个县级市
  • 时装网站建设的背景广州建设专业网站
  • 来年做那些网站能致富网站建设优化文档
  • 好看的商城网站企业所得税分录
  • 网站建设你懂的网站提高内容的丰富度创意
  • 菏泽做网站设计做一个简单的网站需要多少钱
  • html企业网站怎么做免费crm平台
  • 婚庆公司网站制作如何自己制作首页网站
  • ic外贸网站建设龙岩app制作