范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

从零开始学Python爬虫(四)正则表达式

  Regular Expression, 正则表达式,  种使 表达式的 式对字符串进 匹配的语法规则。
  我们抓取到的 源代码本质上就是 个超 的字符串, 想从 提取内容。 正则再合适不过了。
  正则的优点: 速度快, 效率 , 准确性  正则的缺点: 新 上 难度有点 。
  不过只要掌握了正则编写的逻辑关系, 写出 个提取 内容的正则其实并不复杂
  正则的语法: 使 元字符进 排列组合 来匹配字符串
  在线测试正则表达式网址:
  https://tool.oschina.net/regex/
  元字符: 具有固定含义的特殊符号 常 元字符: . 匹配除换 符以外的任意字符
  w 匹配字 或数字或下划线
  s 匹配任意的空 符 d 匹配数字
  匹配 个换 符
  匹配 个制表符
  ^ 匹配字符串的开始 $ 匹配字符串的结尾
  W 匹配 字 或数字或下划线
  D 匹配 数字
  S 匹配 空 符
  a|b 匹配字符a或字符b
  () 匹配括号内的表达式,也表示 个组
  [...] 匹配字符组中的字符
  [^...] 匹配除了字符组中字符的所有字符
  量词: 控制前 的元字符出现的次数 * 重复零次或更多次
  + 重复 次或更多次
  ? 重复零次或 次
  {n} 重复n次
  {n,} 重复n次或更多次
  {n,m} 重复n到m次
  贪婪匹配和惰性匹配
  .* 贪婪匹配 .*? 惰性匹配
  这两个要着重的说 下,因为我们写爬 的最多的就是这个惰性匹配。
  先看案例 str: 玩 吃鸡游戏, 晚上 起上游戏,  嘛呢? 打游戏啊 reg: 玩 .*?游戏 此时匹配的是: 玩 吃鸡游戏 reg: 玩 .*游戏 此时匹配的是: 玩 吃鸡游戏, 晚上 起上游戏,  嘛呢? 打游戏 str: 胡辣汤 reg: <.*> 结果: 胡辣汤 str: 胡辣汤 reg: <.*?> 结果:   str: 胡辣汤饭团 reg: .*? 结果: 胡辣汤
  那么接下来的问题是, 正则我会写了, 怎么在python程序中使 正则呢?答案是re模块
  re模块中我们只需要记住这么 个功能就 够我们使 了。 1. findall 查找所有,返回listimport re lst = re.findall("m"," mai le for len,mai ni mei!") print(lst)  # ["m", "m", "m"] lst = re.findall(r"d+","5点之前. 你要给我5000万") print(lst) # ["5", "5000"] 匹配5开头的所有的数字2. search 会进 匹配, 但是如果匹配到了第 个结果,就会返回这个结果。如果匹配不上search返回的则是Noneret = re.search(r"d","5点之前. 你要给我5000万").group() print(ret)  #匹配结果为 53. match 只能从字符串的开头进 匹配ret = re.match("a","abc").group() print(ret)  #结果为a,如果为babc 报错4. finditer, 和findall差不多. 只不过这时返回的是迭代器(重点)it = re.finditer("m"," mai le for len,mai ni mei!") for el in it:     print(el.group()) # 不分组则返回迭代器5. compile() 可以将 个 的正则进 预加载.  便后 的使 # 将正则表达式编译成为 个正则表达式对象, 规则要匹配的是3个数字 obj = re.compile(r"d{3}") # 正则表达式对象调 search, 参数为待匹配的字符串 ret = obj.search("abc123eeee") print(ret.group()) # 结果: 1236. 正则中的内容如何单独提取?这 可以看到我们可以通过使 分组。来对正则匹配到的内容进 步的进 筛选。s = """ 中国联通 """  obj = re.compile(r"d+)">(?Pw+)",re.S) obj = re.compile(r"d+)">(?Pw+)",re.S) # ?P的意思就是命名一个名字为value的组,匹配规则符合后面的/d+ # 如果不使用re.S参数,则只在每一行内进行匹配,如果一行没有,就换下一行重新开始。 # 而使用re.S参数以后,正则表达式会将这个字符串作为一个整体,在整体中进行匹配。 result = obj.search(s) # print(result.group()) print(result.group()) print(result.group("id")) print(result.group("name"))7.正式练习
  下面一个案例,是练习用正则表达式提取豆瓣电影top250的数据并保存,一起来学一下吧。 # 拿到页面源代码.   requests # 通过re来提取想要的有效信息  re import requests import re import csv  url = "https://movie.douban.com/top250" headers = {     "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.192 Safari/537.36" } resp = requests.get(url, headers=headers) page_content = resp.text  # 解析数据 obj = re.compile(r"
  • .*?.*?(?P.*?)" r".*?

    .*?   (?P.*?) .*?(?P.*?).*?" r"(?P.*?)人评价", re.S) # 开始匹配 result = obj.finditer(page_content) f = open("data.csv", mode="w") csvwriter = csv.writer(f) for it in result: # print(it.group("name")) # print(it.group("score")) # print(it.group("num")) # print(it.group("year").strip()) dic = it.groupdict() dic["year"] = dic["year"].strip() csvwriter.writerow(dic.values()) f.close() print("over!")


  • 机箱界的铝厂,支持240水冷与长显卡的乔思伯V8ITX机箱装机点评如果你玩键盘的话,应该听说过被称为铝厂的品牌IQUNIX,IQUNIX就是因为一直坚持不懈地为键盘以及其他桌面设备大量采用铝合金材质而闻名。而乔思伯则是机箱品牌中一直坚持用铝合金材可压5。0GHz的10700K,九州风神堡垒240V2装机点评目前九州风神在电商平台发售的水冷系列有两款,一款是水元素系列,一款是堡垒系列。虽然目前水冷只有两个系列,但九州风神一直在持续进行迭代更新,其中堡垒系列在数量和种类上要更多些。以九州支持双360水冷的中塔机箱,配色新颖前侧双透的鑫谷直男360点评相比于万年黑配色的机箱,粉色绿色白色红色一类配色的机箱看起来要更有新鲜感,部分厂家也开始外观配色上做起了文章,比如这款鑫谷直男360中塔机箱,直接选择了水泥灰配色,但我老感觉这配色又出现裂缝,国际空间站到底还能硬撑多久才报废?国际空间站又发现裂缝了!继去年星辰号发现泄漏之后,不到一年时间,国际空间站的曙光号舱又发现裂缝了。问题频发,国际空间站还能继续使用吗?曙光号曙光号重24。2吨,长13米,由美国出资流量不够用,网络卡成渣,咋整?现在的我们,几乎离开网络就无法正常生活,出门必带手机,工作必备电脑,就连追个剧,也非得抱着pad才舒服。电子设备无孔不入渗透进我们的生活,使得网络对于我们越来越重要。玩游戏在没有网用网省钱秘诀4G网络转WiFi乡下办公室皆适用在都市生活的时间长了之后,我们总想着能去乡下散散心。每天日出而作日落而息,看庭前花开花落,望天外云卷云舒。可每每真正体会到田园生活后,那颗想要逃离尘世的心刚被满足,就又开始蠢蠢欲动翼联网络五一不放假,柬埔寨依旧送货上门你在外面看风景,我在朋友圈看你这是2019年五月一日翼联4G路由器柬埔寨代理商王雷和我们说的一句话!旅游景点正值五一假期,朋友圈的小伙伴们都背上行囊到各大网红景点旅游打卡。旅游景点怎么才能拿第一无论什么时候不管什么比赛只要区分高下人们记住的都是冠军也就是第一名第一名既承受了压力也享受了无数的荣誉小时候读书上学那会爸爸妈妈告诉我考试一定要考第一我说为啥呀因为只要你考了第一爸告别紧张的高考,愿你也像EDUP一样成为一匹黑马回首那一年高三,窗外的木棉树被阳光照得绿油油地散发着光芒,室内的风扇吱吱呀呀地晃着脑袋,我们一个个心照不宣地默默做着手中的试题,偶尔从学习中抬起头来,瞥过一圈周围正在埋头做题的同学遗憾的是巴黎圣母院还没去看,就被大火给烧了!2019年4月16日,不幸的消息从欧洲传来,法国乃至世界最伟大的建筑之一巴黎圣母院大教堂起火,熊熊大火燃烧了五个多小时。在大火的侵蚀下,巴黎圣母院的塔尖轰然倒塌。巴黎圣母院起火现场这个四月,你打算去哪里旅游呀!随着三月渐行渐远四月悄悄的到来天气也慢慢步入了夏天一想起南方的夏天特别是在深圳印象中总是那么地炎热有时候中午出去外面吃个快餐回到公司或者家里身上已经湿了一大片在这个时候好想卸下身上
    大学生想要换个手机,内存大一点,OPPO和vivo哪一个更好?感谢邀请大学生想要换个手机,内存大一点,OPPO和vivo哪一个更好?实际我觉得最近两年vivo做的相对会更好一些,虽然他们确实是各有特色和亮点。不过随着vivo旗下的iQOO出现视频剪辑软件小影科技创业板IPO获受理拟募资8。05亿元视频剪辑软件小影要来创业板。深交所官网显示,小影科技创业板IPO已获得受理,公司拟募资8。05亿元。作为一家专注于移动端视频创作工具与服务的互联网企业,小影科技成立于2012年6月为了1块钱,顺丰脸都不要了近半年来,顺丰控股似乎过得不太顺。先是一季度业绩暴雷,有了王卫亲自出面道歉的唏嘘场面。紧接着,一句顺丰把我寄送的12箱物品全都扔进了垃圾场的控诉,又将顺丰推上了舆论的风口浪尖。再然跌至1998元,5纳米芯片128GBOLED柔性屏,小米最轻薄的5G手机用户在买手机的时候,除了关心手机的硬件配置之外,还会在意手感,尤其是实体店中,如果拿起手机起来,感觉手感不好的话,不少用户连参数都不想了解了吧。如今的5G手机因为加入更多的元器件,一上线获得250w认购,这个爆款能够为亚马逊运营带来什么启示?前言从今天开始我决定写个新的专栏叫做汉堡跨境观察,意在发现一些网络上面新的风向以及前沿趋势,或者一些好玩的东西,以及对于我们整个亚马逊经营思路会带来怎么样的启发,影响等。数据方面我苹果iPhone13全系规格对比13和Pro最吃香iPhone13如约发布了,这次变化还是相当良心的新的配色更窄的刘海A15处理器新的后摄更长续航1TB大容量接下来,我们就看看四款机型的详细规格和对比。外观配色全系都是超瓷晶面板。雷军乱跑,小米快跑自官宣小米造车以来,小米集团创始人董事长兼首席执行官雷军频繁走访车企和供应链企业的新闻,比当年蔚来汽车李斌小鹏汽车何小鹏们都来得更猛烈一些。雷军自己说,宣布造车至正式注册公司的5个拼多多买手机靠谱不?拼多多买手机靠谱不?关于这个问题,我个人还是有经验的,因为我在拼多多买过手机,就之前华为Nova6的1949元,我入手了一部。下面给大家分享一下,拼多多的购机经验,有需求的可以看下苹果连发6款产品,从2499到12999全都有,你最喜欢哪款?今天凌晨一点,苹果2021年秋季新品发布会如约而至,此次苹果一共连发6款产品,下面让我们一起来看一下今年的苹果新品阵容吧!iPad9A13处理器,CPUGPU提升20,后置单摄,1华为真的没有那么好!在国外还不如小米。为什么?提这个问题的人纯粹是在胡说八道。这样带风向带立场的提问好吗?!我在北美生活了十多年,几乎看不到一个小米的用户,当年去欧洲出差到处都能看到华为的店面尤其是机场,小米踪影全无。你眼中的华为Matebook和联想ThinkPad哪个性能更好?这样说吧,ThinkPad卖的不仅仅是品牌,也是做工,这个电脑的优点是啥,抗造,为啥这么说,就比如很久之前发布的T430来讲,现在依旧能正常使用,玩游戏网游到不行了,但是基本的小游