zoukankan      html  css  js  c++  java
  • 4.19python

    一、今日学习内容

     通过 requests 库已经可以抓到网页源码,接下来要从源码中找到并提取数据。Beautiful Soup 是 python 的一个库,其最主要的功能是从网页中抓取数据。Beautiful Soup 目前已经被移植到 bs4 库中,也就是说在导入 Beautiful Soup 时需要先安装 bs4 库和lxml库。库的安装已经很熟悉了pip install就可以了

    安装 Python 第三方库后,输入下面的代码,即可开启 Beautiful Soup 之旅:

    1. import requests #导入requests包
    2. from bs4 import BeautifulSoup
    3. url='http://www.cntour.cn/'
    4. strhtml=requests.get(url)
    5. soup=BeautifulSoup(strhtml.text,'lxml')
    6. data = soup.select('#main>div>div.mtop.firstMod.clearfix>div.centerBox>ul.newsList>li>a')
    7. print(data)

    代码运行结果如图 17 所示。


    Beautiful Soup 库能够轻松解析网页信息,它被集成在 bs4 库中,需要时可以从 bs4 库中调用。其表达语句如下:

    from bs4 import BeautifulSoup

    首先,HTML 文档将被转换成 Unicode 编码格式,然后 Beautiful Soup 选择最合适的解析器来解析这段文档,此处指定 lxml 解析器进行解析。解析后便将复杂的 HTML 文档转换成树形结构,并且每个节点都是 Python 对象。这里将解析后的文档存储到新建的变量 soup 中,代码如下:

    soup=BeautifulSoup(strhtml.text,'lxml')

    接下来用 select(选择器)定位数据,定位数据时需要使用浏览器的开发者模式,将鼠标光标停留在对应的数据位置并右击,然后在快捷菜单中选择“检查”命令,如图 18 所示:



    图 18


    随后在浏览器右侧会弹出开发者界面,右侧高亮的代码(参见图  19(b))对应着左侧高亮的数据文本(参见图 19(a))。右击右侧高亮数据,在弹出的快捷菜单中选择“Copy”➔“Copy Selector”命令,便可以自动复制路径。



    图 19 复制路径

    将路径粘贴在文档中,代码如下:

    #main > div > div.mtop.firstMod.clearfix > div.centerBox > ul.newsList > li:nth-child(1) > a

    由于这条路径是选中的第一条的路径,而我们需要获取所有的头条新闻,因此将 li:nth-child(1)中冒号(包含冒号)后面的部分删掉,代码如下:

    #main > div > div.mtop.firstMod.clearfix > div.centerBox > ul.newsList > li > a

    使用 soup.select 引用这个路径,代码如下:

    data = soup.select('#main > div > div.mtop.firstMod.clearfix > div.centerBox > ul.newsList > li > a')

    二、遇到的问题

     暂无

    三、明日计划

    继续python学习

  • 相关阅读:
    delphi 鼠标拖动
    Tesseract-ocr 工具使用记录
    在dcef3当中执行js代码并获得返回值
    idhttp提交post带参数并带上cookie
    新制作加热块
    java 调用oracle 分页存储过程 返回游标数据集
    JDBC链接
    ------------浪潮之巅读后感---------------
    价值观作业
    --------关于C语言的问卷调查-----------
  • 原文地址:https://www.cnblogs.com/zyljal/p/14910009.html
Copyright © 2011-2022 走看看