zoukankan      html  css  js  c++  java
  • 爬虫之Beautifulsoup的基本实用

    基本方法如下:

    # soup.a 只能找到第一个符合要求的标签
    # soup.a.attrs 获取a所有的属性和属性值
    # soup.a.attrs['href'] 获取href属性
    # soup.a.string 获取a标签中存储的文本内容(直系)
    # soup.a.text # 非直系 该标签下所有的文本内容
    # soup.a.get_text() # 非直系 该标签下所有的文本内容
    # soup.find('a') 找到第一个符合要求的标签
    # soup.find('a', id='xxx') id为xxx的的a标签(返回一个)
    # soup.findall('a') # 找到所有a标签
    # soup.findall(['a', 'b']) # 找到所有a标签和b标签
    # soup.select() # 根据选择器选择定位到标签

    简单案例: 下载诗词名句网的三国演义文章

    import requests
    from bs4 import BeautifulSoup
    
    url = 'http://www.shicimingju.com/book/sanguoyanyi.html'
    
    fileTxt = requests.get(url).text
    soup = BeautifulSoup(fileTxt, 'lxml')
    
    a_list = soup.select('.book-mulu > ul > li > a')
    
    
    f = open('sanguo.txt', 'w', encoding='utf8')
    for a in a_list:
        title = a.string
    
        detail_url = 'http://www.shicimingju.com' + a['href']
    
        text = requests.get(detail_url).text
        detail_soup = BeautifulSoup(text, 'lxml')
    
        content = detail_soup.find('div', class_='chapter_content').text
        f.write(title+'
    '+content)
        print(f'{title} 下载完毕')
    print('over')
    f.close()
  • 相关阅读:
    javascript 字符串截取
    HTML5 转
    Javascript try catch finally
    C#之json字符串转xml字符串
    AspNetCore Json序列化设置
    类加载(对象创建)顺序
    线性表,线性表和链表的区别
    Implement int sqrt(int x).
    Add Binary
    Roman to Integer(将罗马数字转成整数)
  • 原文地址:https://www.cnblogs.com/Treasuremy/p/10438637.html
Copyright © 2011-2022 走看看