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

做动画网站去哪采集wordpress转cms

做动画网站去哪采集,wordpress转cms,湖南长沙装修公司,织梦网站添加下载文章目录1. Xpath2. jsonpath3. BeautifulSoup4. 正则表达式4.1 特殊符号4.2 特殊字符4.3 限定符4.3 常用函数4.4 匹配策略4.5 常用正则爬虫将数据爬取到后#xff0c;并不是全部的数据都能用#xff0c;我们只需要截取里面的一些数据来用#xff0c;这也就是解析爬取到的信… 文章目录1. Xpath2. jsonpath3. BeautifulSoup4. 正则表达式4.1 特殊符号4.2 特殊字符4.3 限定符4.3 常用函数4.4 匹配策略4.5 常用正则爬虫将数据爬取到后并不是全部的数据都能用我们只需要截取里面的一些数据来用这也就是解析爬取到的信息在解析方面我们常用的手段有三个Xpathjsonpath以及BeautifulSoup接下来我将对其分别进行介绍。 1. Xpath Chrome有Xpath的插件可以在应用商店里面下载一个而Python中使用Xpath解析的话需要安装 lxml 库。 lxml 库的方法很多这么只讲一些涉及到爬虫解析的方法即主要使用的是 lxml 中的 etree 。Xpath的主要使用语句如下 语句含义//查找所有子孙结点忽略层级/只查找子结点选取属性..选取当前节点的父节点*通配符[]选取子元素如 [1] 表示选取第一个元素div[id]查找有 id 属性的 div 标签div[idname]查找 idname 属性的 div 标签div[contains(id, name)]查找 id 中包含 name 的 div 标签div[starts-with(id, name)]查找 id 中以 name 开头的 div 标签div[idname and classname1]逻辑与查询div[idname] | div[classname1]逻辑或操作逻辑或不能写成 div[idname | classname1] 我们查询的HTML 代码如下所示 !DOCTYPE html html langen headmeta charsetUTF-8/title/title/head bodydiv classwrappera hrefwww.biancheng.net/product/ idsitewebsite product/aul idsitenamelia hrefhttp://www.biancheng.net/ title编程帮 id1编程/a/lilia hrefhttp://world.sina.com/ title编程帮 id2微博/a/lilia hrefhttp://www.baidu.com title百度百度贴吧/a/lilia hrefhttp://www.taobao.com title淘宝天猫淘宝/a/lilia hrefhttp://www.jd.com/ title京东京东购物/a/lilia hrefhttp://c.bianchneg.net/ titleC语言中文网编程/a/lilia hrefhttp://www.360.com title360科技安全卫士/a/lilia hrefhttp://www.bytesjump.com/ title字节视频娱乐/a/lilia hrefhttp://bzhan.com/ titleb站年轻娱乐/a/lilia hrefhttp://hao123.com/ title浏览器Chrome搜索引擎/a/li/ul/div /body /html下面是我们的代码查询示例 from lxml import etreetree etree.parse(test.html)# 找到ul下所有的a标签的文本内容 find1 tree.xpath(//ul//a/text()) print(find1 {}.format(find1))# 找到ul下所有的a标签中title编程帮的标签内容 find2 tree.xpath(//a[title编程帮]/text()) print(find2 {}.format(find2))# 找到ul下所有的a标签中title编程帮且id1的标签内容 find3 tree.xpath(//a[id1 and title编程帮]/text()) print(find3 {}.format(find3))# 找到ul下所有的a标签中title淘宝或id1的标签内容 find4 tree.xpath(//a[id1]/text() | //a[title淘宝]/text()) print(find4 {}.format(find4))# 找到ul下所有的a标签中title包含C的标签内容 find5 tree.xpath(//a[contains(title, C)]/text()) print(find5 {}.format(find5))# 找到ul下所有的a标签的以C开头的title的标签内容 find6 tree.xpath(//a[starts-with(title, C)]/text()) print(find6 {}.format(find6))# 找到ul下所有的a标签中title淘宝或id1的标签的爷爷结点的id find7 tree.xpath(//a[starts-with(title, C)]/../../id) print(find7 {}.format(find7))输出如下 find1 [‘编程’, ‘微博’, ‘百度贴吧’, ‘天猫淘宝’, ‘京东购物’, ‘编程’, ‘安全卫士’, ‘视频娱乐’, ‘年轻娱乐’, ‘搜索引擎’] find2 [‘编程’, ‘微博’] find3 [‘编程’] find4 [‘编程’, ‘天猫淘宝’] find5 [‘编程’, ‘搜索引擎’] find6 [‘编程’] find7 [‘sitename’] 接下来我们讲讲最开始安装的Xpath的插件有什么作用。在这里我们以百度首页为例按下 CtrlShiftx 并按下F12唤出开发者工具页面如下。 上面的黑框就是插件所起的效果比如说我们获取上图的 点击一下了解更多 字样那我们就可以在黑框中输入我们的Xpath查询语句黑框右边就会出现语句查询得到的结果非常实用。 当然如果你不想这样看得眼花缭乱的去写Xpath也行只需要在F12开发者模式下右击你想要查询的元素选择复制Xpath即可如下图所示实际上我们一般选择的是这种方法虽然有的时候复制的并不是最简的Xpath语法但是这确实有效。 2. jsonpath jsonpath使用前必须安装jsonpath的包jsonpath 是参照xpath表达式来解析xml文档的方式jsonpath的入门可以参考这篇文章在这里我将主要的点进行一下说明。 学会了Xpath的语法那么jsonpath的语法其实可以对照着进行学习。 Xpathjsonpath说明/$表示根元素.当前元素/. or []子元素…父元素//…递归下降JSONPath是从E4X借鉴的。**通配符表示所有的元素属性访问字符[][]子元素操作符|[,]逻辑或。jsonpath允许name或者 [start:end:step] 的数组分片索引[]?()应用过滤表示式 为了更加直观一点我把文章的例子搞过来大家可以对照着看。 测试数据如下 { store: {book: [ { category: reference,author: Nigel Rees,title: Sayings of the Century,price: 8.95},{ category: fiction,author: Evelyn Waugh,title: Sword of Honour,price: 12.99},{ category: fiction,author: Herman Melville,title: Moby Dick,isbn: 0-553-21311-3,price: 8.99},{ category: fiction,author: J. R. R. Tolkien,title: The Lord of the Rings,isbn: 0-395-19395-8,price: 22.99}],bicycle: {color: red,price: 19.95}} }XPathJSONPath结果/store/book/author$.store.book[*].author书点所有书的作者//author$..author所有的作者/store/*$.store.*store的所有元素。所有的bookst和bicycle/store//price$.store..pricestore里面所有东西的price//book[3]$..book[2]第三个书//book[last()]$..book[(.length-1)]最后一本书//book[position() 3]$..book[0,1] $..book[:2]前面的两本书。//book[isbn]$..book[?(.isbn)]过滤出所有的包含isbn的书。//book[price10]$..book[?(.price10)]过滤出价格低于10的书。//*$..*所有元素。 3. BeautifulSoup BeautifulSoup 库也是解析爬虫的一大利器BeautifulSoup 库的解析速度比 Xpath 相对来说更慢一些但是使用方法简单了不少。这里将BeautifulSoup 常用的方法例举如下 方法含义soup.a找到第一个 a 标签soup.a.name找到第一个 a 标签并输出标签名soup.a.attrs找到第一个 a 标签并将标签属性以字典列出soup.a.get_text()找到第一个 a 标签并输出其内容soup.find(a, class_name1)找到第一个 classname1 的 a 标签soup.find_all(a)找到全部的 a 标签并以列表形式返回soup.find_all([a, span])找到全部的 a 标签和 span 标签soup.find_all(a, limit2)找到前两个 a 标签soup.select(a)找到全部的 a 标签并以列表返回soup.select(.a1)找到全部的 classa1 的标签soup.select(#a1)找到全部的 ida1 的标签soup.select(a[class])找到全部的拥有 class 属性的 a 标签soup.select(a[classname1])找到全部的 classname1 的 a 标签soup.select(a, span)找到全部的 a 标签和 span 标签soup.select(div li)找到 div 后代中的所有 li 标签soup.select(div li)找到 div 子代即下面第一层级中的所有 li 标签 我们仍以第一节中 Xpath 的HTML代码为例进行查询。 from bs4 import BeautifulSoup# 使用lxml解析器 soup BeautifulSoup(open(test.html, encodingutf-8), lxml)find1 soup.a print(find1 {}.format(find1.get_text())) print(find1.name {}.format(find1.name)) print(find1.attrs {}.format(find1.attrs))# 找到idsite 的标签 find2 soup.select(#site) print(find2 {}.format(find2))# 找到前两个 a 标签和 li 标签 find3 soup.find_all([a, li], limit2) print(find3 {}.format(find3))# 找到classth 的 a 标签 find4 soup.select(a[classth]) print(find4 {}.format(find4))4. 正则表达式 最后我们来讲一讲正则表达式。爬虫解析数据中最出名的当属正则表达式了但是正则表达式并不是仅仅在爬虫中才有使用很多的搜索功能或者筛选功能都支持正则表达式。聊到Python正则表达式的支持首先肯定会想到re库这是一个Python处理文本的标准库下面我就来详细讲讲re库的使用。 4.1 特殊符号 正则表达式中存在这一些特殊符号这些符号的使用能够带来不同的匹配作用介绍如下 模式描述.匹配除换行符 \n 之外的任何 单字符。要匹配 . 请使用 \. 。*匹配前面的 子表达式 零次或多次。要匹配 * 字符请使用 \*。匹配前面的 子表达式 一次或多次。要匹配 字符请使用 \。?匹配前面的 子表达式 零次或一次或指明一个非贪婪限定符。要匹配 ? 字符请使用 \?。^匹配输入字符串的开始位置在方括号表达式中使用时表示不接受该字符集合。要匹配 ^ 字符本身请使用 \^。$匹配字符串的结尾位置。如果设置了Multiline 属性则 $ 也匹配 \n 或 \r。要匹配 $ 字符本身请使用 \$。\转义字符。将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。|关系符号“或”。指明两项之间的一个选择。要匹配 |请使用 \|。 4.2 特殊字符 正则表达式中还存在一些以转义字符开头的特殊字符这些符号也能表示一些匹配的规则。 模式描述\d匹配数字:[0-9]\D匹配非数字\s匹配任何空白字符\S匹配非空白字符\w匹配字母数字及下划线\W匹配非字母数字及下划线\A仅匹配字符串开头同^\Z仅匹配字符串结尾同$\b匹配一个单词边界也就是指单词和空格间的位置。例如 ‘er\b’ 可以匹配never 中的 ‘er’但不能匹配 “verb” 中的 ‘er’\B匹配非单词边界。‘er\B’ 能匹配 “verb” 中的 ‘er’但不能匹配 “never” 中的 ‘er’ 4.3 限定符 限定符用来指定正则表达式的一个给定 子字符串 必须要出现多少次才能满足匹配。 字符描述( )标记一个 子表达式 的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符请使用 \( 和 \)。[ ]标记一个 中括号表达式 的开始和结束位置。表示字符集合。要匹配这些字符请使用 \[ 和 \]。{ }标记 限定符表达式 的开始和结束位置。要匹配这些字符请使用 \{ 和 \}。{n}n 是一个非负整数。它前面的 字符 或 子字符串 匹配确定的 n 次。{n,}n 是一个非负整数。它前面的 字符 或 子字符串 至少匹配n 次。{,m}m 为非负整数它前面的 字符 或 子字符串 最多匹配 m 次。{n,m}n 和 m 均为非负整数其中n m。它前面的 字符 或 子字符串 最少匹配 n 次且最多匹配 m 次。 4.3 常用函数 接下来介绍 re 库中的常用函数。 match re.match 尝试从字符串的起始位置匹配一个模式如果不是起始位置匹配成功的话match() 就返回 None只匹配一个。 函数的使用如下 re.match(pattern, string, flags0)其中 pattern 是要匹配的正则表达式string 是要匹配的字符串flags 是正则表达式匹配的模式。 search re.search 扫描整个字符串并返回第一个成功的匹配。 函数的使用如下 re.search(pattern, string, flags0)其中 pattern 是要匹配的正则表达式string 是要匹配的字符串flags 是正则表达式匹配的模式。示例如下 import res Red里面香克斯帅爆了好吧 pattern r香克斯. print(re.search结果{}.format(re.search(pattern, s).group())) print(re.match结果{}.format(re.match(pattern, s)))输出结果为 re.search结果香克斯帅 re.match结果None sub re.sub 为 re 模块的替换函数。 函数的使用如下 re.sub(pattern, repl, string, count0, flags0)其中 pattern 是要匹配的正则表达式repl 是要替换成什么字符串string 原始字符串count 表示模式匹配后替换的最大次数默认 0 表示替换所有的匹配flags 是正则表达式匹配的模式。 compile re.compile 函数用于编译正则表达式生成一个正则表达式(Pattern)对象供 match() 和 search() 这两个函数使用。 函数的使用如下 re.compile(pattern[, flags])其中 pattern 是要匹配的正则表达式flags 可选是正则表达式匹配的模式。示例如下。 import res Red里面香克斯帅爆了好吧 pattern re.compile(r香克斯.) m pattern.search(s) print(匹配结果{}.format(m.group())) print(替换结果{}.format(re.sub(香克斯, 路飞, s)))输出结果如下 匹配结果香克斯帅 替换结果Red里面路飞帅爆了好吧 findall re.findall 在字符串中找到正则表达式所匹配的所有子串并返回一个列表如果有多个匹配模式则返回元组列表如果没有找到匹配的则返回空列表。 函数的使用如下 findall(string[, pos[, endpos]])其中 string 是字符串pos 是可选参数表示匹配开始的位置endpos 是可选参数表示匹配结束的位置。 split re.split split 方法按照能够匹配的子串将字符串分割后返回列表。 函数的使用如下 re.split(pattern, string[, maxsplit0, flags0])其中 pattern 是匹配的正则表达式string 是要匹配的字符串maxsplit 分隔次数maxsplit1 分隔一次默认为 0不限制次数flags 是匹配模式。示例如下 import res Red里面香克斯帅爆了好吧香克斯牛皮 pattern re.compile(r香克斯.) m pattern.findall(s) print(匹配结果{}.format(m)) print(切分结果{}.format(re.split(香克斯., s)))最后对于 search() 以及 match() 函数匹配后返回的 Match 对象都有以下的方法可以使用 方法描述group([group1, …])获得一个或多个分组匹配的字符串当要获得整个匹配的子串时可直接使用 group() 或 group(0)start([group])获取分组匹配的子串在整个字符串中的起始位置end([group])获取分组匹配的子串在整个字符串中的结束位置span([group])方法返回 (start(group), end(group)) 4.4 匹配策略 正则表达式中常用的匹配策略有四种可以在各函数的flag中进行模式指定。 IGNORECASE 可以使用 re.IGNORECASE 或 re.I 标志。进行忽略大小写的匹配。示例如下 import res Red里面香克斯帅爆了好吧香克斯牛皮 pattern1 re.compile(rr) pattern2 re.compile(rr, re.I) print(默认情况{}.format(pattern1.findall(s))) print(改变后为{}.format(pattern2.findall(s)))输出结果为 默认情况[] 改变后为[‘R’] ASCII 可以使用 re.ASCII 或 re.A 标志。让 \w, \W, \b, \B, \d, \D, \s 和 \S 只匹配ASCII而不是Unicode。示例如下 import res Red里面香克斯帅爆了好吧\n香克斯牛皮 pattern1 re.compile(r\w) pattern2 re.compile(r\w, re.A) print(默认情况{}.format(pattern1.findall(s))) print(改变后为{}.format(pattern2.findall(s)))输出结果为 默认情况[‘Red里面香克斯帅爆了好吧’, ‘香克斯牛皮’] 改变后为[‘Red’] DOTALL 可以使用 re.DOTALL 或 re.S 标志。DOT表示 .ALL表示所有连起来就是 . 匹配所有包括换行符\n。默认模式下.是不能匹配行符\n的。示例如下 import res Red里面香克斯帅爆了好吧\n香克斯牛皮 pattern1 re.compile(r香克斯.*) pattern2 re.compile(r香克斯.*, re.S) print(默认情况{}.format(pattern1.findall(s))) print(改变后为{}.format(pattern2.findall(s)))输出结果为 默认情况[‘香克斯帅爆了好吧’, ‘香克斯牛皮’] 改变后为[‘香克斯帅爆了好吧\n香克斯牛皮’] MULTILINE 可以使用 re.MULTILINE 或 re.M 标志。多行模式当某字符串中有换行符\n默认模式下是不支持换行符特性的影响 ^ 和 $。示例如下 import res 香克斯Red里面帅爆了好吧\n香克斯牛皮 pattern1 re.compile(r^香克斯) pattern2 re.compile(r^香克斯, re.M) print(默认情况{}.format(pattern1.findall(s))) print(改变后为{}.format(pattern2.findall(s)))输出结果为 默认情况[‘香克斯’] 改变后为[‘香克斯’, ‘香克斯’] VERBOSE 可以使用 re.VERBOSE 或 re.X 标志。详细模式可以在正则表达式中加注解会忽略正则表达式中的空格和 # 后面的注释。示例如下 import res 香克斯Red里面帅爆了好吧香克斯牛皮 pattern1 re.compile(r^香克斯 #四皇之一) pattern2 re.compile(r^香克斯 #四皇之一, re.X) print(默认情况{}.format(pattern1.findall(s))) print(改变后为{}.format(pattern2.findall(s)))输出结果为 默认情况[] 改变后为[‘香克斯’] 4.5 常用正则 正则表达式解释[\u4e00-\u9fa5]匹配汉字 这里我给一个就行其他的有什么功能都可以去查。
http://www.w-s-a.com/news/780006/

相关文章:

  • 国税网站页面申报撤销怎么做网站空间如何买
  • 简单的购物网站模板跨境建站平台
  • 网站主机多大html网站地图生成
  • 可信赖的邵阳网站建设德清做网站
  • 上传文件网站根目录wordpress博客管理
  • 网站seo优缺点网站建设公司咨
  • 网站设计需要会什么建设网站的目的以及意义
  • 怎么样推广自己的网站wordpress register_form
  • 网站公司建站凤翔网站建设
  • 网站建设协低价格的网站建设公司
  • 研发网站建设报价深圳网站建设前十名
  • 宠物发布网站模板wordpress中文免费电商模板
  • 济南做网站创意服装品牌策划公司
  • 本地电脑做视频网站 外网连接不上软件商城源码
  • 足球直播网站怎么做crm系统介绍
  • 株洲网站建设联系方式东莞凤岗网站制作
  • 小纯洁网站开发如何注册域名
  • 网上做试卷的网站如何把刚做的网站被百度抓取到
  • 滕州网站建wordpress用户中心按钮不弹出
  • 清远新闻最新消息福建seo搜索引擎优化
  • 凡客建站网微信网站怎么做的
  • 网站建设费怎么写会计科目行业网站建设公司
  • 网站里的友情链接网站建设个人简历的网页
  • 佛山自助建站软件湖南seo优化推荐
  • 免费微信微网站模板下载不了优化人员配置
  • wordpress 导航网站主题画流程图的网站
  • 皮卡剧网站怎样做排名网
  • 网站开发 兼职哪个网站是做安全教育
  • 商品展示类网站怎么用群晖nas做网站
  • 长腿蜘蛛wordpresssem优化推广