• 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标签的写法

     

     

    
    
  • 相关阅读:
    168. Excel Sheet Column Title
    171. Excel Sheet Column Number
    264. Ugly Number II java solutions
    152. Maximum Product Subarray java solutions
    309. Best Time to Buy and Sell Stock with Cooldown java solutions
    120. Triangle java solutions
    300. Longest Increasing Subsequence java solutions
    63. Unique Paths II java solutions
    221. Maximal Square java solutions
    279. Perfect Squares java solutions
  • 原文地址:https://www.cnblogs.com/kaibindirver/p/11372186.html
Copyright © 2020-2023  润新知