zoukankan      html  css  js  c++  java
  • 关于BeautifulSoup 和 re 的探讨

    个人觉得使用BeautifulSoup匹配网页标签内容比re更容易一些,re的规则比较多而且有些使用方法比较难,很容易匹配不到

    而soup方法在处理网页标签就特别容易,这和urllib.request.urlopen()和request.get()一样,后者要容易一些:

    1.re 正则表达式

    编译模式:这个匹配模式多次被使用

    content = 'who is xxoo.jpg, maybe shanpao is xxoo.jpg '

    reg = re.compile(r'xxoo.jpg')

    p = re.search(reg, content)#search只匹配最前匹配的那个 match则是匹配开头,findall匹配全部返回一个列表

    print(p.group())#取得匹配对象

    >>>xxoo.jpg

    非编译模式:直接写在括号里

    content = 'who is xxoo.jpg, maybe shanpao is xxoo.jpg '

    p = re.search(r'xxoo.jpg', content)#search只匹配最前匹配的那个 match则是匹配开头,findall匹配全部返回一个列表,带括号的匹配括号里面的

    print(p.group())#取得匹配对象

    >>>xxoo.jpg

    2.soup模式

    html ='''
    <body>
    <div class = 'heiheihaha'>

    <img id = 'xx' src = 'www.xxoo.jpg' />

    <a href = 'www.xxoo.com'>18岁以下禁止入内</a>

    </div>
    </body>
    '''

    soup = BeautifulSoup (html, 'lxml')
    div_text = soup.select('.heiheihaha')#class 用点号.代替 如果是id则用#号代替
    print(div_text) #输出div下面的所有标签内容

    >>>

    [<div class="heiheihaha">
    <img id="xx" src="www.xxoo.jpg"/>
    <a href="www.xxoo.com">18岁以下禁止入内</a>
    </div>]

    img_text = soup.select('.heiheihaha img') #输出div下的img里面的吗的内容,列表形式

    print(img_text)

    >>>

    [<img id="xx" src="www.xxoo.jpg"/>]

    img_text = soup.select('.heiheihaha img')

    print(img_text[0]['src']) #解析列表获取里面的src的值。一般为图片路径

    >>>www.xxoo.jpg

    a_text = soup.select('.heiheihaha a') #获取 div下的a标签

    print(a_text)

    >>>[<a href="www.xxoo.com">18岁以下禁止入内</a>] 

    a_text = soup.select('.heiheihaha a')

    print(a_text[0].text) #获取啊标签下的值

    >>>18岁以下禁止入内

    a_text = soup.select('.heiheihaha a')

    print(a_text[0]['href']) #获取啊标签的链接

    >>>www.xxoo.com





  • 相关阅读:
    Ajax调用 打不开新窗口
    杂记3
    todo WebClient学习
    Repeater 嵌套
    动态生成数个gridview Button得到隐藏ID列的值
    SQL 查询间隔时间大于60s的所有数据
    Apache DbUtils
    一步步学Mybatis-告别繁琐的配置之Mybatis配置文件生成工具 (7)
    一步步学Mybatis-怎么样实现动态SQL查询(6)
    一步步学Mybatis-实现简单的分页效果逻辑 (5)
  • 原文地址:https://www.cnblogs.com/Zhu-Xueming/p/8362188.html
Copyright © 2011-2022 走看看