• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python如何利用正则表达式爬取网页信息及图片

    一、正则表达式是什么?

    概念:

    正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

    正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。

    个人理解:

    简单来说就是使用正则表达式来写一个过滤器来过滤了掉杂乱的无用的信息(eg:网页源代码…)从中来获取自己想要的内容

    二、实战项目

    1.爬取内容

    获取上海所有三甲医院的名称并保存到.txt文件中

    2.访问链接

    上海三甲医院网站 link:https://yyk.99.com.cn/sanjia/shanghai/

    3.正则表达式书写的灵感

    进入网站查看本页面的源代码发现 :医院的名称都是放在一个

    div class="province-box"> ...... /div>
    

    盒子里我们只需要直接把这个盒子里面的数据过滤一下就行

    正则表达式:

    法一:

    1.一级过滤 : 

       div class="province-box">(.*)div class="wrap-right">

    开头是:div class="province-box"> (.*)  结尾是:div class="wrap-right">

    2.二级过滤:

     title="(.*[院心部])*)" 获取title=" " 里面的信息

    法二:

    优化后一次性过滤:

     li>a href="/[^/].*/" rel="external nofollow" rel="external nofollow" target="_blank" title="(.*)">

    贴图片

    开头是:

    结尾是:

    4.项目源代码

    import requests
    import re
    
    url = "https://yyk.99.com.cn/sanjia/shanghai/"
    # 模拟浏览器的访问
    headers ={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) '
                            'Gecko/20100101 Firefox/87.0'}
    res = requests.get(url,headers=headers)
    
    if res.status_code == 200:
    	#1.获取网页源代码
        raw_text = res.text
        
        #2.正则表达式书写:
        #2.2注意:正则表达式默认匹配的是一行  我们的源代码是多行匹配的要加另一个参数 re.DOTALL
    	#2.3正则法一:
    		#re.findall() 返回的是lsit集合 一次过滤
        re_res = re.findall(r'div class="province-box">(.*)div class="wrap-right">', raw_text,re.DOTALL)
        	#re_res[0] 获取下标是的数据    二次过滤
        res=re.findall(r'title="(.*[院心部])*)"',re_res[0])
        	#检查打印获取到的信息
    	print(res)
    	
    	#2.4正则法二:
    		#(优化)不用二次过滤 一次过滤就解决了
        # re_list = re.findall(r'li>a href="/[^/].*/" rel="external nofollow"  rel="external nofollow"  target="_blank" title="(.*)">', res.text)
        #print(re_list)
    
        # 写入文件中
        read = open("上海医院名单", "w", encoding='utf-8')
        for i in res:
            read.write(i)
            read.write("\n")
        read.close()
    else:
        print("error")
    

    项目目录:

    部分结果:

    python 正则表达式-提取图片地址

    import os,sys,time,json,time
    import socket,random,hashlib
    import requests,configparser
    import json,re
    from datetime import datetime
    from multiprocessing.dummy import Pool as ThreadPool
    
    
    def getpicurl(url):
        url = "http://www.mzitu.com/zipai/comment-page-352"
        html = requests.get(url).text
        pic_url = re.findall('img src="(.*?)"',html,re.S)
        for key in pic_url:
            print(key + "\r\n")
        #print(pic_url)
        
    getpicurl("http://www.mzitu.com/zipai/comment-pag.e-352")
    

    输出结果:

    python mmm.py
    http://wx3.sinaimg.cn/mw1024/9d52c073gy1fsvu6578k1j20sg15nk4x.jpg

    http://wx1.sinaimg.cn/mw1024/9d52c073gy1fsvu64q4lgj20j60nz0ua.jpg

    http://wx1.sinaimg.cn/mw1024/9d52c073gy1fsvu67hhbaj20sg110toc.jpg

    http://wx2.sinaimg.cn/mw1024/9d52c073gy1fsvu66bw56j20sg0zjtlr.jpg

    http://wx1.sinaimg.cn/mw1024/9d52c073gy1fsvu65vvvtj20sg0mmtfc.jpg

    http://wx2.sinaimg.cn/mw1024/9d52c073gy1fsvu66gtnzj20sg0zk48h.jpg

    http://wx1.sinaimg.cn/mw1024/9d52c073gy1fsvu65q1qyj20sg11vtmo.jpg

    http://wx3.sinaimg.cn/mw1024/9d52c073gy1fsvu64wgejj20e60iwtax.jpg

    http://wx1.sinaimg.cn/mw1024/9d52c073gy1fsvu66a8xfj20lt0rptgw.jpg

    http://wx4.sinaimg.cn/mw1024/9d52c073gy1fsnr6n7n66j20k00ozn52.jpg

    http://wx1.sinaimg.cn/mw1024/9d52c073gy1fsnr6njhjyj20sg0zkn88.jpg

    http://wx3.sinaimg.cn/mw1024/9d52c073gy1fsnr6n2zmyj20sg0ldten.jpg

    总结

    到此这篇关于Python如何利用正则表达式爬取网页信息及图片的文章就介绍到这了,更多相关Python正则表达式爬取内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Python正则表达式中的量词符号与组问题小结
    • Python正则表达式的应用详解
    • 浅谈Python中的正则表达式
    • python正则表达式re.search()的基本使用教程
    • python通过re正则表达式切割中英文的操作
    • Python验证的50个常见正则表达式
    • python re模块和正则表达式
    • Python中正则表达式对单个字符,多个字符和匹配边界等使用
    • python正则表达式re.match()匹配多个字符方法的实现
    • 如何利用python正则表达式匹配版本信息
    • python使用正则表达式匹配txt特定字符串(有换行)
    • Python爬虫教程之利用正则表达式匹配网页内容
    • python中使用正则表达式将所有符合条件的字段全部提取出来
    • Python使用正则表达式实现爬虫数据抽取
    • Python 通过正则表达式快速获取电影的下载地址
    • python正则表达式 匹配反斜杠的操作方法
    • 带你精通Python正则表达式
    上一篇:python中sys模块的介绍与实例
    下一篇:python3 实现mysql数据库连接池的示例代码
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python如何利用正则表达式爬取网页信息及图片 Python,如何,利用,正则,表达式,