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

学校网站 建设网络系统管理与维护电大考试题

学校网站 建设,网络系统管理与维护电大考试题,图片网站建设,长沙seo计费管理一#xff1a;什么是爬虫 网络爬虫#xff08;又被称为网页蜘蛛#xff0c;网络机器人#xff0c;在FOAF社区中间#xff0c;经常被称为网页追逐者#xff09;#xff0c;是一种按照一定的规则#xff0c;自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字…一什么是爬虫 网络爬虫又被称为网页蜘蛛网络机器人在FOAF社区中间经常被称为网页追逐者是一种按照一定的规则自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 即打开一个网页里面有网页内容吧想象一下有个工具可以把网页上的内容获取下来存到你想要的地方这个工具就是我们今天的主角爬虫 二requests介绍 1requests介绍 requests 是 Python 中的一个 HTTP 库可以用于发送 HTTP/1.1 请求。它可以让 Python 发送 HTTP/1.1 请求包括 GET、POST、PUT、DELETE、HEAD、OPTIONS 等方法同时也支持 cookie、header、SSL 等特性。 2安装requests pip install requests 3requests使用 (1)GET请求 import requests #导入 Requests 模块 params {key1: value1, key2: value2} r requests.get(https://XXX, paramsparams) (2)POST请求 import requests #导入 Requests 模块 data {key1: value1, key2: value2} r requests.post(https://XXX, datadata) (3)其他请求 r requests.put(https://XXX) #put请求 r requests.delete(https://XXX) #delete请求 r requests.head(https://XXX) #head请求 r requests.options(https://XXX) #options请求 (4)requests响应 1. 字符串内容响应 import requests #导入 Requests 模块 import astr requests.get(https://XXX) #像目标url地址发送get请求返回一个response对象 content r.text #获取响应内容 # #将字符串转字典型 content_list ast.literal_eval(content) 2. 二进制内容响应 import requests #导入 Requests 模块 r requests.get(https://XXX) #像目标url地址发送get请求返回一个response对象 r.content #非文本请求,获取响应内容,一般创建图片时获取图片使用 3. json内容响应 import requests #导入 Requests 模块 r requests.get(https://XXX) r.json() 如果 JSON 解码失败r.json就会抛出一个异常。例如相应内容是 401 (Unauthorized)尝试访问 r.json将会抛出 ValueError: No JSON object could be decoded异常。 4. 原始内容响应 在罕见的情况下你可能想获取来自服务器的原始套接字响应那么你可以访问 r.raw。 如果你确实想这么干那请你确保在初始请求中设置了 streamTrue。具体你可以这么做 import requests r requests.get(https://XXX, streamTrue) r.raw #requests.packages.urllib3.response.HTTPResponse object at 0x101194810 r.raw.read(10) #\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03 三BeautifulSoup介绍 1BeautifulSoup介绍 BeautifulSoup 是一个可以将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种: Tag , NavigableString , BeautifulSoup , Comment  BeautifulSoup文档地址Beautiful Soup 4.4.0 文档    Beautiful Soup 4.12.0 文档 2BeautifulSoup安装 pip install beautifulsoup4 我们还可以安装lxml这是一个解析器BeautifulSoup可以使用它来解析HTML然后提取内容如果不安装lxml则BeautifulSoup会使用Python内置的解析器对文档进行解析。之所以使用lxml是因为它速度快 pip install lxml 3BeautifulSoup使用 (1)Tag介绍 标签; 访问方式:soup.tag;属性:tag.name(标签名)tag.attrs(标签属性) 例 from bs4 import BeautifulSoup soup BeautifulSoup(p classtestthis is test/p,lxml) tag soup.p print(tag) # p classtestthis is test/p print(tag.name) # p print(tag.attrs) # {class: [test]} print(tag[class]) # [test] (2)NavigableString介绍 NavigableString就是标签中的文本内容不包含标签可遍历字符串; 访问方式:soup.tag.string 例 from bs4 import BeautifulSoup soup BeautifulSoup(p classtestthis is test/p,lxml)tag soup.p print(tag.string) #this is test (3)BeautifulSoup介绍 BeautifulSoup 对象表示的是一个文档的全部内容.大部分时候,可以把它当作 Tag 对象,它支持 遍历文档树 和 搜索文档树 中描述的大部分的方法; 属性:soup.name(标签名)soup.attrs(标签属性) (4)Comment介绍 标签内字符串的注释; 访问方式:soup.tag.string 例 from bs4 import BeautifulSoupsoup BeautifulSoup(p!--hello word--/p,lxml) tag soup.p print(tag.string) #hello word (5)搜索文档树 在BeautifulSoup中最常用的是find()和find_all()当然还有其他的。比如find_parent() 和 find_parents()、 find_next_sibling() 和 find_next_siblings() 、find_all_next() 和 find_next()、find_all_previous() 和 find_previous() 等等。这里只介绍find()和find_all()用法其他的可以自行参考官网文档 1. find_all() 搜索当前tag的所有tag子节点并判断是否符合过滤器的条件。返回值类型是bs4.element.ResultSet 语法 find_all( name , attrs , recursive , string , **kwargs )参数说明 name 参数可以查找所有名字为 name 的tag。attr 参数就是tag里的属性。string 参数搜索文档中字符串的内容。recursive 参数 调用tag的 find_all() 方法时Beautiful Soup会检索当前tag的所有子孙节点。如果只想搜索tag的直接子节点可以使用参数 recursiveFalse 。 简单实例 from bs4 import BeautifulSoup import resoup BeautifulSoup(p classtestthis is test/pa classclick idbtn hrefhttp://www.baidu.com点击跳转/a,lxml)print(soup.find_all(p)) #[p classtestthis is test/p]print(soup.find_all(p, test)) #[p classtestthis is test/p]# print(soup.find_all(a)) #[a classclick hrefhttp://www.baidu.com点击跳转/a]print(soup.find_all(idbtn)) #[a classclick hrefhttp://www.baidu.com idbtn点击跳转/a]print(soup.find_all(stringre.compile(test))) #[this is test] 2. find() 与find_all()类似只不过只返回找到的第一个值。返回值类型是bs4.element.Tag。 语法 find( name , attrs , recursive , string , **kwargs )参数说明 name 参数可以查找所有名字为 name 的tag。attr 参数就是tag里的属性。string 参数搜索文档中字符串的内容。recursive 参数 调用tag的 find_all() 方法时Beautiful Soup会检索当前tag的所有子孙节点。如果只想搜索tag的直接子节点可以使用参数 recursiveFalse 。 简单实例 from bs4 import BeautifulSoup import resoup BeautifulSoup(p classtestthis is test/pa classclick idbtn hrefhttp://www.baidu.com点击跳转/a,lxml)print(soup.find(p)) #p classtestthis is test/pprint(soup.find(p, test)) #p classtestthis is test/p# print(soup.find(a)) #a classclick hrefhttp://www.baidu.com点击跳转/aprint(soup.find(idbtn)) #a classclick hrefhttp://www.baidu.com点击跳转/aprint(soup.find(stringre.compile(test))) #this is test 四python实现数据爬虫 数据爬虫简单实例 import requests #导入requests 模块 from bs4 import BeautifulSoup #导入BeautifulSoup 模块 import os #导入os模块 class BeautifulPicture():def __init__(self): #类的初始化操作self.headers {User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1} #给请求指定一个请求头来模拟chrome浏览器self.web_url http://XXX #要访问的网页地址self.folder_path rE:\pic #设置图片要存放的文件目录def get_pic(self):print(开始网页get请求)r self.request(self.web_url)print(开始获取所有a标签)all_a BeautifulSoup(r.text, lxml).find_all(img) #获取网页中的class为cV68d的所有a标签print(开始创建文件夹)self.mkdir(self.folder_path) #创建文件夹print(开始切换文件夹)os.chdir(self.folder_path) #切换路径至上面创建的文件夹i 0for a in all_a: #循环每个标签获取标签中图片的url并且进行网络请求最后保存图片img_str a[src] #a标签中完整的style字符串print(a标签的style内容是, img_str)first_pos img_str.find() 1second_pos img_str.find(,first_pos)img_url img_str[first_pos: second_pos] #使用Python的切片功能截取双引号之间的内容img_name str(i)self.save_img(img_url, img_name) #调用save_img方法来保存图片i int(i)1def save_img(self, url, name): ##保存图片print(开始请求图片地址过程会有点长...)if url.find(https) ! -1:img self.request(url)file_name name .jpgprint(开始保存图片)f open(file_name, ab)f.write(img.content)print(file_name, 图片保存成功)f.close()def request(self, url): #返回网页的responser requests.get(url, headersself.headers) # 像目标url地址发送get请求返回一个response对象。有没有headers参数都可以。return rdef mkdir(self, path): ##这个函数创建文件夹path path.strip()isExists os.path.exists(path)if not isExists:print(创建名字叫做, path, 的文件夹)os.makedirs(path)print(创建成功)else:print(path, 文件夹已经存在了不再创建) beauty BeautifulPicture() #创建类的实例 beauty.get_pic() #执行类中的方法
http://www.zqtcl.cn/news/905298/

相关文章:

  • 任经理++徐州网站建设湖南正规关键词优化
  • 哪些软件可以做网站设计农村网站建设茂名
  • 平顶山网站建设费用腾讯云轻量应用服务器
  • 外贸优秀网站廊坊seo建站
  • 站长工具seo综合查询5g网站建设整改落实情况
  • 网站建设方案 流程wordpress客户案例
  • 网站被收录的过程如何创造属于自己的软件
  • 做神马网站优化快速排国外乡村建设网站
  • 东莞网站优化服务公司天河做网站开发
  • ui在线设计网站滁州 来安县建设局网站
  • 做印尼购物网站如何发货wordpress怎么换中文
  • 深圳方维网站建设公司企业网站推广方式和策略
  • 沙洋县住房和城乡建设局网站单页网站下载
  • 江宁区住房建设局网站建设工程扣分查询网站
  • wordpress火车采集优化算法分类
  • 厦门做网站公司有哪些有什么好的加盟店项目
  • wap网站开发技术怎么做消费信贷网站
  • 公司网站开发外包公司深圳网站建设sz886
  • 中英文网站建设需要懂英语吗电气网站设计
  • 双语网站用什么程序做新网站如何被网站收录
  • 怎么做视频平台网站想开个小说网站怎么做
  • 网站安全监测预警平台建设成效阐述网络营销策略的内容
  • 网站上的qq如何做悬浮沧州做网站的公司
  • 电子商务网站系统规划报告移动商城 网站建设方法方式
  • 网站建设架构选型引擎seo优
  • 什么电脑做网站前段用网站建设工作人员有哪些职责
  • 网站建设技巧网站建设 总结
  • 有站点网络营销平台搜一下百度
  • 沈阳网站建设找德泰诺wordpress 访客计数器
  • 专业网站建设价格分析企业展示型网站建设方案