美文网首页
python爬虫3:beautifulsoupp实践

python爬虫3:beautifulsoupp实践

作者: Iphone60Plus | 来源:发表于2020-05-02 18:35 被阅读0次

    当用text提取纯文本时,获取标签内所有纯文本信息

    from bs4 import BeautifulSoup
    bs = BeautifulSoup('<p><a>惟有痴情难学佛</a>独无媚骨不如人</p>','html.parser')
    tag = bs.find('p')
    print(tag.text)
    #惟有痴情难学佛独无媚骨不如人
    

    父标签只能提取自身的属性值,不能提取子标签的属性值

    from bs4 import BeautifulSoup
    bs = BeautifulSoup('<p><a href=\'https://www.pypypy.cn\'></a>哈哈哈~</p>','html.parser')
    tag = bs.find('p')
    print(tag['href'])
    #报错。属性href属于标签<a>,不属于标签<p>
    
    # 引用requests库
    import requests
    # 引用BeautifulSoup库
    from bs4 import BeautifulSoup
    
    # 获取数据
    res_foods = requests.get('http://www.xiachufang.com/explore/')
    # 解析数据
    bs_foods = BeautifulSoup(res_foods.text,'html.parser')
    # 查找最小父级标签
    list_foods = bs_foods.find_all('div',class_='info pure-u')
    
    # 提取第0个父级标签中的<a>标签
    tag_a = list_foods[0].find('a')
    # 菜名,使用strip()函数去掉了多余的空格
    name = tag_a.text.strip()
    # 获取URL
    URL = 'http://www.xiachufang.com'+tag_a['href']
    
    # 提取第0个父级标签中的<p>标签
    tag_p = list_foods[0].find('p',class_='ing ellipsis')
    # 食材,使用strip()函数去掉了多余的空格
    ingredients = tag_p.text.strip()
    # 打印食材
    print(ingredients)
    

    写循环,存列表

    # 引用requests库
    import requests
    # 引用BeautifulSoup库
    from bs4 import BeautifulSoup
    
    # 获取数据
    res_foods = requests.get('http://www.xiachufang.com/explore/')
    # 解析数据
    bs_foods = BeautifulSoup(res_foods.text,'html.parser')
    # 查找最小父级标签
    list_foods = bs_foods.find_all('div',class_='info pure-u')
    
    #大列表
    aaa = []
    for list_food in list_foods:
        # 提取父级标签中的<a>标签
        tag_a = list_food.find('a')
        # 菜名,使用strip()函数去掉多余的空格
        name = tag_a.text.strip()
        # 获取URL
        URL = 'http://www.xiachufang.com'+tag_a['href']
        # 提取父级标签中的<p>标签
        tag_p = list_food.find('p',class_='ing ellipsis')
        # 食材,使用strip去取多余的空格
        ingredients = tag_p.strip()
        # 创建小列表
        bbb = [name,URL,ingredients]
        # 添加到大列表中
        aaa.append(bbb)
    # 打印
    print(aaa)
    

    第二种方法

    # 引用requests库
    import requests
    # 引用BeautifulSoup库
    from bs4 import BeautifulSoup
    
    # 获取数据
    res_foods = requests.get('http://www.xiachufang.com/explore/')
    # 解析数据
    bs_foods = BeautifulSoup(res_foods.text,'html.parser')
    
    # 查找包含菜名和URL的<p>标签
    tag_name = bs_foods.find_all('p',class_='name')
    # 查找包含食材的<p>标签
    tag_ingredients = bs_foods.find_all('p',class_='ing ellipsis')
    # 创建一个空列表,用于存储信息
    list_all = []
    # 启动一个循环,次数等于菜名的数量
    for x in range(len(tag_name)):
        # 提取信息,封装为列表。注意此处使用的是<p>标签,而之前是<a>
        list_food = [tag_name[x].text.strip(),tag_name[x].find('a')['href'],tag_ingredients[x].text.strip()]
        # 将信息添加进list_all    
        list_all.append(list_food)
    # 打印
    print(list_all)
    

    相关文章

      网友评论

          本文标题:python爬虫3:beautifulsoupp实践

          本文链接:https://www.haomeiwen.com/subject/qzltghtx.html