zoukankan      html  css  js  c++  java
  • bs4笔记

    1、网页输出乱码的解决办法

    r= requests.get('https://www.baidu.com/')

    r.encoding = 'gbk2312'   #有可能 gbk、utf-8

    soup=BeautifulSoup(r.text,"html.parser")

    来源:https://blog.csdn.net/w839687571/article/details/81414433

    2、打开本地html的方法

    import requests
    from bs4 import BeautifulSoup
    import io

    path = '/Users/lucax/Desktop/素材/html/123.html'
    htmlfile = io.open(path, 'r', encoding='utf-8')
    htmlhandle = htmlfile.read()
    soup = BeautifulSoup(htmlhandle, "html.parser")
    print soup

    2-1、自己输入文字再输出的方法

    markup = "<b><!--Hey, buddy. Want to buy a used parser?--></b>"
    soup = BeautifulSoup(markup)
    comment = soup.b.string  #输出里面的字符

    soup.prettify() #套上html框架加入markup的文案输出

    3、各种拿网页元素的方法

    soup.title  --获取网页title

    soup.title.name --获取title标签的标签文案

    soup.title.string  --获取title标签里面的文案           string 和 text 用法的区别 https://www.cnblogs.com/kaibindirver/p/11374669.html

    soup.strings    --获取网页所有文案,每个文案分别放入到数组里,但只能使用for循环展示出来

    soup.stripped_strings   ---(接着strings取出的内容)可以把空格和换行符去掉

    soup.p  --获取网页的p标签

    soup.a --获取网页的a标签

    soup.find_all('a')  --获取网页所有的a标签

    soup.find(id='link3')  --获取id=link3的标签

    soup.find('a',id='link2')  --获取 a 标签 且 id=link2 的标签

    soup.get_text() --获取网页中所有文字内容

    soup.text.encode('utf-8') --获取网页中所有文字内容 另外一种写法

    soup.text --获取网页中所有文字内容 另外一种写法

    4、标签内属性、值、标签名操作的方法

    soup.p['class']   -获取标签里面的属性对应的值

    soup.p.get('class')  -获取标签里面的属性对应的值,另一种写法

    soup.p.attrs --获取p标签所有的属性和值(字典形式输出)

    soup.a.name='新的标签' --修改网页里面a标签的标签为'新的标签'

    soup.p['class']='123'   --修改属性的值

    del soup.p['class']     --删除属性

    5、替换文案的操作方法

    soup.div.find('div',id="site_nav_top").replace_with("No longer bold")      --替换整个标签的方法

    soup.div.find('div',id="site_nav_top").string.replace_with("No longer bold")  --替换标签内文案的方法

    6、把tag内的子节点已列表形式输出  .contents  属性

    head_tag = soup.head
    head_tag
    # <head><title>The Dormouse's story</title></head>

    head_tag.contents
    [<title>The Dormouse's story</title>]

    title_tag = head_tag.contents[0]
    title_tag
    # <title>The Dormouse's story</title>
    title_tag.contents
    # [u'The Dormouse's story']

    7.获取网页所有标签内文字

    soup.strings  

    stripped_strings   过滤空格的方法

     

    用法

    for string in soup.strings:

        print string

     

     

    8、搜索有特定属性的标签的方法

    9获取tr标签内多个td标签,其中一个td标签里面em标签的写法

     

     

    
    
  • 相关阅读:
    MySQL(十五)之数据备份中mysqldump详解
    MySQL(十四)之数据备份与还原
    MySQL(十三)之MySQL事务
    Flink MysqlSink 简单样例
    Flink FileSink 自定义输出路径——StreamingFileSink、BucketingSink 和 StreamingFileSink简单比较
    Flink FileSink 自定义输出路径——BucketingSink
    【翻译】Flink Joining
    Flink 异步IO访问外部数据(mysql篇)
    【翻译】Flink 异步I / O访问外部数据
    Flink 自定义source和sink,获取kafka的key,输出指定key
  • 原文地址:https://www.cnblogs.com/kaibindirver/p/11372186.html
Copyright © 2011-2022 走看看