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

网站服务器分流怎么做西安企业网站seo

网站服务器分流怎么做,西安企业网站seo,深圳网络营销推广中心,武汉 酒店 网站制作数据提取 前面的爬虫笔记学习的都是如何爬取整个页面的内容,服务器渲染中,数据是直接放在源代码html里面的,大多数情况下整个页面的内容真正需要的只是一小部分,那把这一小部分提取出来的过程就叫做数据提取 数据解析方式 re解…

数据提取

前面的爬虫笔记学习的都是如何爬取整个页面的内容,服务器渲染中,数据是直接放在源代码html里面的,大多数情况下整个页面的内容真正需要的只是一小部分,那把这一小部分提取出来的过程就叫做数据提取

数据解析方式

re解析(运行速度最快)

RE:regular expression正则表达式,写一段话对字符串进行匹配的语法规则

因为爬取到的页面本质上就是一个超长的字符串,所以正则表达式很适合用于爬取字符串的数据提取

元字符

元字符含义(下面都是匹配一个字符串)
.匹配除换行符以外的任意字符
\w匹配字母或数字或下划线
\s匹配任意空白字符(空格、换行、回车)
\d匹配数字
\t匹配一个制表符
^匹配字符串开始
$匹配字符串结尾
\W匹配非字母或数字或下划线
\D匹配非数字
\S匹配非空白符
a|b匹配字符a或字符b
()匹配括号内的表达式,也表示一个组
[. . .]匹配字符组中的字符
[^. . .]匹配除了字符组中字符的所有字符

量词

量词含义
*重复0次或更多次
 "+"重复1次或更多次
重复0次或1次
{n}重复1次
{n,}重复n次或更多次
{n,m}重复n到m次

贪婪匹配和惰性匹配

.*贪婪匹配(尽可能多次)
.*?惰性匹配(爬虫使用最多,尽可能少的匹配,回溯)

python中的re模块

代码练习:
import re
#1-findall匹配所有符合正则的内容
lst = re.findall(r"\d+","我的电话号码是:15683298476,你的电话号码是:23142349765")#r(正则)声明字符串为原始字符串
print(lst)
#2-finditer:返回的是迭代器,迭代器的效率比列表高
it = re.finditer(r"\d+","我的电话号码是:15683298476,你的电话号码是:23142349765")#r声明字符串为原始字符串
print(it)#返回的是迭代器,从迭代器中拿到内容需要遍历迭代器,拿里面内容要用方法.group()
for i in it:print(i.group())
#3-search返回的是match对象,想拿数据同样需要.group()
s = re.search(r"\d+","我的电话号码是:15683298476,你的电话号码是:23142349765")
print(s)
print(s.group())#但是只返回第一个,因为search就是全文检索,只要找到一个就返回
#4-match只能从头开始匹配
m = re.match(r"\d+","15683298476(必须开头就是数字,否则就报错),你的电话号码是:23142349765")
print(m)
print(m.group())
#预加载正则表达式(复杂的正则表达式需要反复的调用,就提前定义变量预编译一个正则表达式)
obj = re.compile(r"\d+")
o = obj.finditer("我的电话号码是15683298476,你的是23142349765")
print(o)
for it in o:print(it.group())
#例子
s1 = """
<div class='yuSi'><span id='1'>虞书欣</span></div>
<div class='luLi'><span id='2'>赵露思</span></div>
<div class='diLi'><span id='3'>迪丽热巴</span></div>
<div class='ziMi'><span id='4'>杨紫</span></div>
"""
obj2 = re.compile(r"<div class='.*?'><span id='\d+'>.*?</span></div>",re.S)#re.S使得.能够匹配换行符
result = obj2.finditer(s1)
for it in result:print(it.group())
#但是实际上想要的内容比现在打印的少,不想要html格式内容,方法:将.*?用()框起来,并用?P<名字>命名
obj3 = re.compile(r"<div class='(?P<class>.*?)'><span id='(?P<id>\d+)'>(?P<name>.*?)</span></div>",re.S)#re.S使得.能够匹配换行符
result = obj3.finditer(s1)
for it in result:print(it.group("class", "id", "name"))
结果打印:

http://www.dtcms.com/wzjs/71494.html

相关文章:

  • 易云巢做网站公司关键词代发排名推广
  • 宁波网站建设找哪家好建网站怎么建
  • iOS开发 隐私政策网站怎么做寻找郑州网站优化公司
  • 苏州企业网站建设公司价格合肥正规的seo公司
  • 专做sm的网站买卖网交易平台
  • 俄语企业网站制作关键词优化分析工具
  • 长沙网站建设推广百度平台营销收费标准
  • vue做网站好吗百度应用市场app下载
  • 石油化工工程建设人才招聘网站促销活动推广方案
  • 自己做的网站怎么在百度能搜到搜索引擎营销的方法包括
  • 重庆微网站建设baidu com百度一下
  • 做微信公众号网站源码百度电脑版网页版
  • 深圳自适应网站建设七台河网站seo
  • 网络游戏工作室加盟台州seo快速排名
  • 百度联盟怎么做网站加入提高工作效率的方法不正确的是
  • 做医药商城网站的公司吗网站设计公司官网
  • 文昌网站建设网站建设网络推广公司
  • 长春网络网站制作开发郑州seo公司排名
  • 国外做调灵风暴的网站网络营销专业就业前景
  • 信息港发布信息百度关键词优化平台
  • 怎么看网站建设有多久在线优化seo
  • 长春长春网站建设性价比高seo排名优化的
  • 山东省住房和城乡建设部网站百度一下 你就知道首页官网
  • 新钥匙网站建设今日新闻十大头条内容
  • 做网站卖设备找哪家好付费恶意点击软件
  • 注册网站域名有什么用外链网盘
  • 企业网站做app百度热搜榜今日头条排名
  • 最新一键自助建站程序源码十大网站排行榜
  • 做网站有什么框架怎么做自己的网页
  • 微信公众号直接链接网站怎么做线上广告宣传方式有哪些