zoukankan      html  css  js  c++  java
  • Python学习——BeautifulSoup篇

    BeautifulSoup
        Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间.
         在本节的笔记中,笔者将会分享两次示例,来帮助大家熟悉BeautifulSoup库的使用,好的,闲话不说,我们来看一下示例。
     
    如何去定位元素
           下面我们来爬取一个网页,然后提取里面一些简单的数据
         import requests
         from bs4 import BeautifulSoup as bs
     
          url = "http://china.huanqiu.com/article/2016-07/9132061.html?from=bdwz"
          response = bs(requests.get(url).content,'html.parser')
    #获取页面内,h1标签的文章标题
          print("这篇文章的标题是:",response.h1.string)
    #使用find方法,寻找页面内name=source的content的内容
          print ("这篇文章的类型是:",response.find(attrs= {'name':'source'})['content'])
    #从find_all返回的列表中,查找content字段
         for content in response.find_all('meta',{'name':'source'}):
              print("这篇文章的类型是:",content['content'])
         我们来解读一下上面这段代码:
         1、导入requests库
         2、导入BeautifulSoup库的bs4方法命名为bs
         3、将目标地址赋予url
         4、使用bs对爬取到的web页面的二进制数据进行html的解析
         (这里使用的是requests.get().content返回的是爬取到的页面的二进制数据,之前我也是用的requests.get().text,但是会有乱码,具体原因不是很清楚。不过有前辈讲是因为requests.get().text 是将爬取到的内容进行默认的转译,而win的系统总是会出莫名其妙的问题)
         5、打印,爬取到的页面中的h1标签的页面标题(页面标签麻烦自行百度html页面标签)
         6、使用find方法,搜索爬取到的内容里,name=source的内容,打印content对应的数据
         7、从find_all返回的列表中,寻找name=source的content字段的数据并打印。
         (之前我是有尝试过使用find_all这个方法的,但是没有成功,因为我忽略了find_all方法返回的实际上是一个列表)
  • 相关阅读:
    识人高招:六招看清一个人
    让工作变简单的10种技巧
    推销中的五大提问技巧
    给初次签约大学生的忠告
    只要有钱50岁男人也嫁
    我老公一个月赚15000,但是幸福在哪呢?(转载)
    想法简单,生命更宽!
    中国经典到吐血的谎话
    你的思想是你最大的敌人
    完美人生从哪里起步
  • 原文地址:https://www.cnblogs.com/rookie-c/p/5754817.html
Copyright © 2011-2022 走看看