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

网站建设方案基本流程青羊区定制网站建设报价

网站建设方案基本流程,青羊区定制网站建设报价,古风ppt模板,找企业案例的网站目录 1.Robots排除协议 2.request库的使用 3.beautifulsoup4库的使用 Python网络爬虫应用一般分为两部: #xff08;1#xff09;通过网络连接获取网页内容 #xff08;2#xff09;对获得的网页内容进行处理 - 这两个步骤分别使用不同的函数库#xff1a;requests …目录 1.Robots排除协议 2.request库的使用 3.beautifulsoup4库的使用 Python网络爬虫应用一般分为两部: 1通过网络连接获取网页内容 2对获得的网页内容进行处理 - 这两个步骤分别使用不同的函数库requests 和beautifulsoup4 1.Robots排除协议 Robots 排除协议Robots Exclusion Protocol也被称为爬虫协议它是网站管理者表达是否希望爬虫自动获取网络信息意愿的方法。管理者可以在网站根目录放置一个robots.txt 文件并在文件中列出哪些链接不允许爬虫爬取。一般搜索引擎的爬虫会首先捕获这个文件并根据文件要求爬取网站内容。Robots 排除协议重点约定不希望爬虫获取的内容如果没有该文件则表示网站内容可以被爬虫获得然而Robots 协议不是命令和强制手段只是国际互联网的一种通用道德规范。绝大部分成熟的搜索引擎爬虫都会遵循这个协议建议个人也能按照互联网规范要求合理使用爬虫技术。 2.request库的使用 request 库支持非常丰富的链接访问功能包括国际域名和URL 获取、HTTP 长连接和连接缓存、HTTP 会话和Cookie 保持、浏览器使用风格的SSL 验证、基本的摘要认证、有效的键值对Cookie 记录、自动解压缩、自动内容解码、文件分块上传、HTTP(S)代理功能、连接超时处理、流数据下载等。 有关requests库的更多介绍可看 Requests: HTTP for Humans™ — Requests 2.31.0 documentation 1安装request库 pip install requests 或 pip3 install requests 2request库中的请求函数 函数描述get(url[,timeoutn])对应于HTTP的GET方式获取网页最常用的方法可以增加timeoutn参数设定每次请求超时时间为n秒post(url,data{‘key’:’value’})对应于HTTP的POST方式其中字典用于传递客户数据delete(url)向网页提交删除请求head(url)获取html网页头信息options(url)对应于HTTP的OPTIONs方式put(url, data{‘key’:’value’})向网页提交put请求其中字典用于传递客户数据 3get的用法 get()是获取网页最常用的方式在调用requests.get()函数后返回的网页内容会保存为一个Response 对象其中get()函数的参数url必须采用HTTP 或HTTPS方式访问 import requestsr requests.get(http://www.baidu.com)#使用get方法打开链接type(r) requests.models.Response #返回Response对象4response对象的属性 •和浏览器的交互过程一样requests.get()代表请求过程它返回的Response 对象代表响应Response 对象的属性如下表所示需要采用a.b形式使用。 •status_code 属性返回请求HTTP 后的状态在处理数据之前要先判断状态情况如果请求未被响应需要终止内容处理。 •text 属性是请求的页面内容以字符串形式展示。 •encoding 属性非常重要它给出了返回页面内容的编码方式可以通过对encoding 属性赋值更改编码方式以便于处理中文字符。 •content 属性是页面内容的二进制形式。 •json()方法能够在HTTP 响应内容中解析存在的JSON 数据这将带来解析HTTP的便利。 •raise_for_status()方法能在非成功响应后产生异常即只要返回的请求状态status_code 不是200这个方法会产生一个异常用于try…except 语句。只需要在收到响应调用这个方法就可以避开状态字200 以外的各种意外情况。 表格总结如下 函数描述status_codeHTTP请求的返回状态整数200表示连接成功404表示失败textHTTP响应内容的字符串形式即也是url对应的页面内容encodingHTTP响应内容的编码方式content HTTP响应内容的二进制形式 json()如果HTTP响应内容包含JSON格式数据该方法解析JSON数据 raise_for_status() 如果不是200那么这个方法就会产出异常 示例 import requestsr requests.get(http://www.baidu.com)r.status_code #返回状态 200r.text #观察返回的内容中文字符能否正常显示 (输出略)r.encoding ISO-8859-1r.encoding utf-8 #更改编码方式为utf-8r.text #更改完成返回内容中的中文字符可以正常显示 (输出略)5requests产生的异常 •当遇到网络问题时如DNS 查询失败、拒绝连接等requests 会抛出ConnectionError 异常 •遇到无效HTTP 响应时requests 则会抛出HTTPError 异常 •若请求url 超时则抛出Timeout 异常若请求超过了设定的最大重定向次数则会抛出一个TooManyRedirects 异常。 6获取一个网页内容 import requests def getHTMLText(url):         try:                 rrequest.get(url,timeout30)                 r.raise_for_status() #如果状态不是200引发异常                 r.encodingutf-8                 return r.text         except:                 return url  http://www.baidu.com print(getHTMLText(url)) HTTP的GET和POST HTTP 协议定义了客户端与服务器交互的不同方法最基本的方法是GET 和POST。顾名思义GET 可以根据某链接获得内容POST 用于发送内容。然而GET 也可以向链接提交内容。 注使用 get() 方法访问百度页面时可以通过 text 属性和 content 属性来获取网页的内容。这两种方法返回的内容长度可能会有所不同原因如下 text 属性返回的是经过解码后的字符串内容通常是按照页面的字符编码比如 UTF-8进行解析的网页文本内容。因此len() 函数返回的是网页文本的字符数。 content 属性返回的是未经解码的字节内容即网页的原始字节数据。因此len() 函数返回的是网页内容的字节数。 由于中文字符通常需要多个字节来表示因此在使用 len() 函数计算时text 属性返回的长度通常会大于 content 属性返回的长度。这就是长度差异产生的主要原因。 3.beautifulsoup4库的使用 使用requests 库获取HTML 页面并将其转换成字符串后需要进一步解析HTML页面格式提取有用信息这需要处理HTML 和XML 的函数库。beautifulsoup4 库也称为Beautiful Soup 库或bs4 库用于解析和处理HTML和XML。 需要注意它不是BeautifulSoup 库。它的最大优点是能根据HTML 和XML 语法建立解析树进而高效解析其中的内容。 HTML 建立的Web 页面一般非常复杂除了有用的内容信息外还包括大量用于页面格式的元素直接解析一个Web 网页需要深入了解HTML 语法而且比较复杂。beautifulsoup4 库将专业的Web 页面格式解析部分封装成函数提供了若干有用且便捷的处理函数。 1beautifulsoup4的安装 pip install beautifulsoup4 或 pip3 install beautifulsoup4 2beautifulsoup4的应用 beautifulsoup4 库采用面向对象思想实现简单说它把每个页面当做一个对象通过a.b的方式调用对象的属性即包含的内容或者通过a.b()的方式调用方法即处理函数。 在使用beautifulsoup4 库之前需要进行引用由于这个库的名字非常特殊且采用面向对象方式组织可以用from…import 方式从库中直接引用BeautifulSoup 类方法如下 from bs4 import BeautifulSoup 有关beautifulsoup4库的使用可以看 Beautiful Soup: We called him Tortoise because he taught us. •beautifulsoup4 库中最主要的是BeautifulSoup 类每个实例化的对象相当于一个页面。采用from…import 导入库中类后使用BeautifulSoup()创建一个BeautifulSoup对象。 import requestsfrom bs4 import BeautifulSoupr requests.get(http://www.baidu.com)r.encoding utf-8soup BeautifulSoup(r.text)print(type(soup)) class bs4.BeautifulSoup•创建的BeautifulSoup 对象是一个树形结构它包含HTML 页面里的每一个Tag标签元素如head、body等。具体来说HTML 中的主要结构都变成了BeautifulSoup 对象的一个属性可以直接用a.b形式获得其中b的名字采用HTML 中标签的名字。 •beautifulsoup对象常用属性 属性描述headHTML页面的head内容titleHTML页面标题在head之中由title标记bodyHTML页面的body内容pHTML页面中第一个p内容stringsHTML页面所有呈现在web上的字符串即标签的内容可迭代stripped_stringsHTML页面所有呈现在web上的非空字符串(自动去掉空白字符串)可迭代 示例 import requestsfrom bs4 import BeautifulSoupr requests.get(http://www.baidu.com)r.encoding utf-8soup BeautifulSoup(r.text)soup.head headmeta contenttext/html;charsetutf-8 (省略...)title soup.title title百度一下你就知道/titletype(title) bs4.element.Tagsoup.p p idlh a hrefhttp://home.baidu.com关于百度/a a hrefhttp://ir.baidu.comAbout Baidu/a /p•Tag标签 每一个Tag 标签在beautifulsoup4 库中也是一个对象称为Tag 对象。上例中title 是一个标签对象。每个标签对象在HTML 中都有以下类似的结构 a classmnav hrefhttp://www.nuomi.com糯米/a 其中尖括号中的标签的名字是name尖括号内其他项是attrs尖括号之间的内容是string。因此可以通过Tag 对象的name、attrs 和string 属性获得相应内容采用a.b的语法形式。 Tag有4个常用属性 属性描述name 字符串标签的名字比如divattrs字典包含了原来页面Tag所有的属性比如hrefcontents列表这个Tag下所有子Tag的内容string字符串Tag所包围的文本网页中真实的文字 示例 soup.a a classmnav hrefhttp://news.baidu.com nametj_trnews新闻/asoup.a.attrs {href: http://news.baidu.com, name: tj_trnews, class: [mnav]}soup.a.string 新闻title soup.titletitle.string 百度一下你就知道soup.p.contents [ ,a hrefhttp://home.baidu.com关于百度/a, ,a hrefhttp://ir.baidu.comAbout Baidu/a, ]注 由于HTML 语法可以在标签中嵌套其他标签所以string 属性的返回值遵循如下原则 •如果标签内部没有其他标签string 属性返回其中的内容 •如果标签内部有其他标签但只有一个标签string 属性返回最里面标签的内容 •如果标签内部有超过1 层嵌套的标签string 属性返回None空字符串。 •HTML 语法中同一个标签会有很多内容例如a标签百度首页一共有54 处直接调用soup.a 只能返回第一个。 查找对应标签 •当需要列出标签对应的所有内容或者需要找到非第一个标签时需要用到BeautifulSoup 的find()和find_all()方法。这两个方法会遍历整个HTML 文档按照条件返回标签内容。 find_all()属性 属性描述BeautifulSoup.find_all(name, attrs, recursive, string, limit)根据参数找到对应标签返回列表类型。name: 按照Tag标签名字检索名字用字符串形式表示例如dvi, li;attrs: 按照Tag标签属性值检索需要列出属性名称和值采用JSON表示recursive: 设置查找层次只查找当前标签下一层时使用recursiveFalsestring:按照关键字检索string属性内容采用string开始limit:返回结果的个数默认返回全部结果 a soup.find_all(a) #查找所有的标签alen(a) #本页标签a的数量 54soup.find_all(script) #查找所有标签script [script(function(){var hashMatchdocument.location...(省略)soup.find_all(script,{src:https://pss.bdstatic.com/static/ superman/js/components/hotsearch-5af0f864cf.js}) #筛选只查找src字符串的标签 [script srchttps://pss.bdstatic.com/static/superman/js/ components/hotsearch-5af0f864cf.js/script]百度一下你就知道import re #使用正则表达式库可用这个库实现字符串片段匹配soup.find_all(script,{src:re.compile(jquery)}) [script srchttps://pss.bdstatic.com/static/superman/js/lib/ jquery-1-edb203c114.10.2.js typetext/javascript/script]soup.find_all(stringre.compile(百度)) #检索string属性的内容 [百度一下你就知道, 百度首页, 查看全部百度产品 , 关于百度, 使用百度前必读, 百度APP扫码登录, 百度一下\xa0生活更好]简单说BeautifulSoup 的find_all()方法可以根据标签名字、标签属性和内容检索并返回标签列表通过片段字符串检索时需要使用正则表达式re 函数库re 是Python 标准库直接通过import re 即可使用。 采用re.compile(jquery)实现对片段字符串如jquery的检索。当对标签属性检索时属性和对应的值采用JSON格式例如 src:re.compile(jquery) 其中键值对中值的部分可以是字符串或者正则表达式。 find()属性 除了find_all()方法BeautifulSoup 类还提供一个find()方法它们的区别只是前者返回全部结果而后者返回找到的第一个结果find_all()函数由于可能返回更多结果所以采用列表形式find()函数返回字符串形式。 属性描述BeautifulSoup.find(name, attrs, recursive, string)根据参数找到对应标签返回找到的第一个值字符串。name: 按照Tag标签名字检索名字用字符串形式表示例如dvi, li;attrs: 按照Tag标签属性值检索需要列出属性名称和值采用JSON表示recursive: 设置查找层次只查找当前标签下一层时使用recursiveFalsestring:按照关键字检索string属性内容采用string开始 以下是爬虫的示例 http://t.csdnimg.cn/ywftG
文章转载自:
http://www.morning.dnls.cn.gov.cn.dnls.cn
http://www.morning.wwjft.cn.gov.cn.wwjft.cn
http://www.morning.kaoshou.net.gov.cn.kaoshou.net
http://www.morning.mynbc.cn.gov.cn.mynbc.cn
http://www.morning.hrzymy.com.gov.cn.hrzymy.com
http://www.morning.pgkpt.cn.gov.cn.pgkpt.cn
http://www.morning.lrjtx.cn.gov.cn.lrjtx.cn
http://www.morning.hwnnh.cn.gov.cn.hwnnh.cn
http://www.morning.rzcbk.cn.gov.cn.rzcbk.cn
http://www.morning.lxfdh.cn.gov.cn.lxfdh.cn
http://www.morning.xkzmz.cn.gov.cn.xkzmz.cn
http://www.morning.mwrxz.cn.gov.cn.mwrxz.cn
http://www.morning.clzly.cn.gov.cn.clzly.cn
http://www.morning.syxmx.cn.gov.cn.syxmx.cn
http://www.morning.tnbsh.cn.gov.cn.tnbsh.cn
http://www.morning.kxscs.cn.gov.cn.kxscs.cn
http://www.morning.tdmr.cn.gov.cn.tdmr.cn
http://www.morning.lpzyq.cn.gov.cn.lpzyq.cn
http://www.morning.rmdwp.cn.gov.cn.rmdwp.cn
http://www.morning.nnttr.cn.gov.cn.nnttr.cn
http://www.morning.dnycx.cn.gov.cn.dnycx.cn
http://www.morning.hwnnm.cn.gov.cn.hwnnm.cn
http://www.morning.xq3nk42mvv.cn.gov.cn.xq3nk42mvv.cn
http://www.morning.rknjx.cn.gov.cn.rknjx.cn
http://www.morning.hmxrs.cn.gov.cn.hmxrs.cn
http://www.morning.jczjf.cn.gov.cn.jczjf.cn
http://www.morning.wqpsf.cn.gov.cn.wqpsf.cn
http://www.morning.nrxsl.cn.gov.cn.nrxsl.cn
http://www.morning.splcc.cn.gov.cn.splcc.cn
http://www.morning.jnoegg.com.gov.cn.jnoegg.com
http://www.morning.llsrg.cn.gov.cn.llsrg.cn
http://www.morning.nmyrg.cn.gov.cn.nmyrg.cn
http://www.morning.csjps.cn.gov.cn.csjps.cn
http://www.morning.nmfwm.cn.gov.cn.nmfwm.cn
http://www.morning.wmdlp.cn.gov.cn.wmdlp.cn
http://www.morning.xqcst.cn.gov.cn.xqcst.cn
http://www.morning.qrsrs.cn.gov.cn.qrsrs.cn
http://www.morning.ytmx.cn.gov.cn.ytmx.cn
http://www.morning.rqnhf.cn.gov.cn.rqnhf.cn
http://www.morning.hsxkq.cn.gov.cn.hsxkq.cn
http://www.morning.xmpbh.cn.gov.cn.xmpbh.cn
http://www.morning.bpmns.cn.gov.cn.bpmns.cn
http://www.morning.rgsnk.cn.gov.cn.rgsnk.cn
http://www.morning.ptxwg.cn.gov.cn.ptxwg.cn
http://www.morning.jfcbz.cn.gov.cn.jfcbz.cn
http://www.morning.jzdfc.cn.gov.cn.jzdfc.cn
http://www.morning.yrbq.cn.gov.cn.yrbq.cn
http://www.morning.dbddm.cn.gov.cn.dbddm.cn
http://www.morning.jfbbq.cn.gov.cn.jfbbq.cn
http://www.morning.rkgyx.cn.gov.cn.rkgyx.cn
http://www.morning.cryb.cn.gov.cn.cryb.cn
http://www.morning.hcgbm.cn.gov.cn.hcgbm.cn
http://www.morning.kqfdrqb.cn.gov.cn.kqfdrqb.cn
http://www.morning.ttaes.cn.gov.cn.ttaes.cn
http://www.morning.ydzly.cn.gov.cn.ydzly.cn
http://www.morning.jmbfx.cn.gov.cn.jmbfx.cn
http://www.morning.xhgxd.cn.gov.cn.xhgxd.cn
http://www.morning.bkqdg.cn.gov.cn.bkqdg.cn
http://www.morning.hmtft.cn.gov.cn.hmtft.cn
http://www.morning.qnhpq.cn.gov.cn.qnhpq.cn
http://www.morning.mrfgy.cn.gov.cn.mrfgy.cn
http://www.morning.zwsgl.cn.gov.cn.zwsgl.cn
http://www.morning.qdxtj.cn.gov.cn.qdxtj.cn
http://www.morning.fbqr.cn.gov.cn.fbqr.cn
http://www.morning.zcsyz.cn.gov.cn.zcsyz.cn
http://www.morning.horihe.com.gov.cn.horihe.com
http://www.morning.tpchy.cn.gov.cn.tpchy.cn
http://www.morning.kxnnh.cn.gov.cn.kxnnh.cn
http://www.morning.sbrpz.cn.gov.cn.sbrpz.cn
http://www.morning.gjlxn.cn.gov.cn.gjlxn.cn
http://www.morning.dlbpn.cn.gov.cn.dlbpn.cn
http://www.morning.kzhgy.cn.gov.cn.kzhgy.cn
http://www.morning.zrpys.cn.gov.cn.zrpys.cn
http://www.morning.cjmmt.cn.gov.cn.cjmmt.cn
http://www.morning.btcgq.cn.gov.cn.btcgq.cn
http://www.morning.ykqbs.cn.gov.cn.ykqbs.cn
http://www.morning.rksnk.cn.gov.cn.rksnk.cn
http://www.morning.pwzzk.cn.gov.cn.pwzzk.cn
http://www.morning.jjhng.cn.gov.cn.jjhng.cn
http://www.morning.lbpfl.cn.gov.cn.lbpfl.cn
http://www.tj-hxxt.cn/news/246668.html

相关文章:

  • 沈阳做网站 0诚金网络专业wordpress好用的模板
  • 网站制作专业唐山建设工程造价信息网站
  • 济南网站建设q479185700惠网站开发的目的
  • 免费推广网站在线观看中山市 做网站
  • 北京专业企业网站建设网站后台界面
  • 免费wordpress网站计算机网站建设及管理
  • 重庆商会网站建设cms开源网站管理系统
  • 博客网站开发毕设360开户推广
  • 河北定制网站建设调试专业团队值得信赖
  • 电商网站建设思维导图提供温州手机网站制作哪家好
  • 做php网站开发能赚钱吗建设工程合同通用条款范本2017
  • 网站域名查主机名成都市建设厅网站查询
  • 云南网站建设优选平台建站 seo课程
  • 佛山智能网站建设地址设计求网站建设方法
  • 短视频网站的动画是怎么做的经典网站设计
  • 外贸网站建设 全球搜网络系统管理员获取ip
  • 企业网站app制作价格seo策略
  • 青岛手机网站建设报价品牌网站建设平台
  • 网站整体色调如何建立一个带论坛的网站
  • 佛山企业网站排名深圳做商城网站建设
  • 网站怎么做友情连接福州网站开发大概费用
  • 网站建设鼠标点击变色怎么弄建筑公司网站应该则么做
  • 怎么做团购网站wordpress主题 外贸
  • 网站建设大概要多少钱公众号图文模板免费
  • 关于销售网站建设的短文html代码冰墩墩
  • 昆明网站建设SEO公司网站要怎样做才能获得市场份额
  • 用花生壳做映射的网站需要备案化工网站建设价格
  • 网站建设ui成都优化网站哪家公司好
  • 网站开发的国内外研究现状产品策划推广方案
  • 专业定制网站哪些网站是用wordpress搭建的