nova-week4

2024-02-16 08:32
文章标签 nova week4

本文主要是介绍nova-week4,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

任务

继续优化上周的两个爬取链接和内链的程序,对爬取内容进行筛选

注:在过程中遇到问题:“ImportError: cannot import name etree”

解决办法:

  1. 网上提到可能是把文件夹命名为了"lxml"—btw无果
  2. 问题不在1,把setting-project里的第三方库"lxml"升级为最新版,就OK了???(黑人问号,原理不知,可能是版本冲突)

mission 1:

import requests
import json
from lxml import etree
import re
def get_html(url):#获取网站的html代码并将其用lxml初始化,并返回Html=requests.get(url)html=etree.HTML(Html.text)return html
def get_link(html):#获取html中的链接地址,并写入文件with open(r"C:\Users\lenovo\Desktop\untitled\nova\week4\link.json",'w')as f:link=html.xpath("//a/@href")link_selected=[]for i in link:if re.match("/.+\.htm",i):link_selected.append(i)Json=json.dumps(link_selected,sort_keys=True, indent=4, separators=(',', ': '))f.write(Json)
if __name__=="__main__":html=get_html(r'http://www.nju.edu.cn/')get_link(html)
结果:对爬取内容进行了筛选,共爬取64条链接

mission 2:

import re
import requests
from lxml import etree
import json
def json_read():#读取json文件中的内容with open(r"C:\Users\lenovo\Desktop\untitled\nova\week4\link.json",'r') as f:link=json.loads(f.read())return link
def get_postfix(url):#爬取对应url下的链接地址Html=requests.get(url)html=etree.HTML(Html.text)link=html.xpath("//a/@href")return link
def url_search(link_pull,link):#寻找匹配的内链地址并输出;通过递归穷尽所有分支for i in link:if re.match(r"/.+\.htm",i):#因为爬取后最后一条链接是图片,没想到什么好办法,通过这个判断去掉这一条if ".jpg" in i:breakif str("http://www.nju.edu.cn"+i) in link_pull:continueelse:print("http://www.nju.edu.cn"+i)link_pull.append(str("http://www.nju.edu.cn"+i))post=get_postfix("http://www.nju.edu.cn"+i)if post!=[]:url_search(link_pull,post)return
if __name__=="__main__":link=json_read()link_pull=linkurl_search(link_pull,link)
知识点:爬取下的链接是绝对地址!!!前面只需要加"http://www.nju.edu.cn"

每个链接之间是相互独立的,而不是父子节点之间的关系!!!

结果:共爬取下来423条内链

这篇关于nova-week4的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/714028

相关文章

OpenStack Victoria版——6.2计算节点-Nova计算服务组件

6.2计算节点-Nova计算服务组件 更多步骤:OpenStack Victoria版安装部署系列教程 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版 离线安装部署系列教程(全) OpenStack Train版 离线安装部署系列教程(全) 欢迎留言沟通,共同进步。 文章目录 Nova相关软件

OpenStack:Glance共享与上传、Nova操作选项解释、Cinder操作技巧

目录 Glance member task Nova lock shelve rescue Cinder manage local-attach transfer backup-export 总结 原作者:int32bit,参考内容 从2013年开始折腾OpenStack也有好几年的时间了。在使用过程中,我发现有很多很有用的操作,但是却很少被提及。这里我暂不直接

Nova Club Cointelegraph 酒会:以最别样的方式认识Etalonium

如果说最近有什么活动是惹人瞩目,大咖云集的话,那一定非即将举行的Nova Club & Cointelegraph联合酒会莫属。这场云集了一众世界名模,时尚翘楚,国际领航人,行业大咖的盛会必将成为诸多业内人士眼中的高光时刻。 【世链财经原创】 本次私密酒会将于8月21日晚上在北京举行,由Nova Club携手Cointelegraph,同时联合CBE与Biki共同举办。 具有全球影响力的知名区块链

可以根据手机的折叠状态改变播放音效:nova Flip 的妙趣音效

由于折叠机最基础的“可折叠”属性,导致折叠机的扬声器相对于人的位置来说会存在更多的变化,在不同的折叠状态下,听感方面可能就会大有不同。 nova Flip手机利用这一特性,首次根据折叠形态差异,自适应了不同形态的音效氛围。 展开态:当手机是类似于直板机的展开态时,搭配首发的histen9.3音频算法,nova Flip拥有更具清晰度和更自然的音质效果,打造更具还原度的音效体验。   悬

华为nova Flip这么轻薄的机身还能这么卷?

近年来,小折叠手机备受关注,随着各大厂商纷纷布局小折叠赛道,行业内卷现象也让小折叠的创新程度再上一个新的高度。而对拥有庞大的年轻用户基础的小折叠来说,简约大方的设计风格,轻薄小巧的精致外观,以及超大的电池容量仍然是大家选择一款小折叠的几个重要因素。 最新发布的华为nova Flip,就在6.88mm极致轻薄的厚度下,植入了4400mAh的大电池容量。那么,华为nova Flip究竟是如何做到

后置人像主题2.0首现nova Flip,前后置都超能打!

继华为nova12系列的前置人像美颜主题上线后,nova Flip小折叠手机,首次实现在后置自拍场景下,支持nova品牌人像主题2.0功能。 全新升级的华为达芬奇人像引擎 2.0,带来“形、质、色、光、画”智能人像优化,脸型立体,肤质细腻,肤色清透,明暗有致,虚化唯美自然,全面提升人像质感。后置原生、质感、妆感三种人像美颜主题,为用户提供三种不同的美颜质感。 原生主题:高清原相机质感,清爽

ARTS-for-week4-20181109

每周完成一个ARTS:每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称ARTS) 第四周了,哇咔咔。时间过得好快^_^由于微信不支持添加外链,所以大家访问有链接的地方直接滑到文章最底部点击阅读原文就可以访问了^_^ 一  Algorithm

深入浅出OpenStack云计算平台管理(nova-compute/network)

各位网友,我这里有套课程想和大家分享,是来自明义(robby)老师的一套关于云计算平台管理的课程, 需要的朋友可以加我qq和我联系。QQ2059055336.     1.1、 课程的背景       OpenStack是 一个由Rackspace发起、全球开发者共同参与的开源项目,旨在打造易于部署、功能丰富且易于扩展的云计算平台。OpenStack企图成为数据中心

Openstack -- nova-compute服务启动

1、/usr/bin/nova-compute #从nova模块导入/nova/cmd/compute main函数启动服务1 #!/usr/bin/python2 # PBR Generated from u'console_scripts'3 4 import sys5 6 from nova.cmd.compute import main7 8 9 if __name__ == "__m

nova-network创建实例之FlatManager

1 安装devstack,配置local.conf FLOATING_RANGE=192.168.1.224/27 FIXED_RANGE=10.10.10.0/24 FIXED_NETWORK_SIZE=256FLAT_INTERFACE=eth1NETWORK_MANAGER=FlatManagerPUBLIC_INTERFACE=br200VLAN_INTERFACE=et