zoukankan      html  css  js  c++  java
  • 网络爬虫基础练习

    1.利用requests.get(url)获取网页页面的html文件

    import requests

    newsurl='http://news.gzcc.cn/html/xiaoyuanxinwen/'

    res = requests.get(newsurl) #返回response对象

    res.encoding='utf-8'

    2.利用BeautifulSoup的HTML解析器,生成结构树

    from bs4 import BeautifulSoup

    soup = BeautifulSoup(res.text,'html.parser')

    3.找出特定标签的html元素

    soup.p #标签名,返回第一个

    soup.head

    soup.p.name #字符串

    soup.p. attrs #字典,标签的所有属性

    soup.p. contents # 列表,所有子标签

    soup.p.text #字符串

    soup.p.string

    soup.select(‘li')

    4.取得含有特定CSS属性的元素

    soup.select('#p1Node')

    soup.select('.news-list-title')

    5.练习:

    import requests
    re=requests.get('http://localhost:63342/bd/test.html?_ijt=i20u1bc6rslg59oa6clor426kh')
    re.encoding='utf-8'
    print(re)
    print(re.text)
    
    from bs4 import BeautifulSoup
    soup = BeautifulSoup(re.text,'html.parser')

    取出h1标签的文本

    print(soup.h1.text)

     

    取出a标签的链接

    print(soup.a.attrs['href'])


    取出所有li标签的所有内容

    for i in soup.select('li'):
        print(i.contents)


    取出第2个li标签的a标签的第3个div标签的属性

    print(soup.select('li')[1].a.select('div')[2].attrs)

    取出一条新闻的标题、链接、发布时间、来源

    1.取出一条新闻的标题

    print(soup.select('.news-list-title')[0].text)

    2.贴链接

    print(soup.select('li')[2].a.attrs['href'])

    3.发布时间

    print(soup.select('.news-list-info')[0].contents[0].text)

    4.来源

    print(soup.select('.news-list-info')[0].contents[1].text)

    截图如下

    我所用的html页面符合小练习标准,欢迎复制html,切记只是html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Simple DOM Demo</title>
    </head>
    <body>
        <h1>This is the document body</h1>
        <P ID = "p1Node">This is paragraph 1.</P>
        <P ID = "p2Node">段落2</P>
        <a href="http://www.gzcc.cn/">广州商学院</a>
    
        <li><a href="http://news.gzcc.cn">新闻网</a></li>
        <li><a href="http://news.gzcc.cn"><div style="hight:80px">旧闻网</div></a></li>
        <li>
                    <a href="http://news.gzcc.cn/html/2018/xiaoyuanxinwen_0328/9113.html">
                        <div class="news-list-thumb"><img src="http://oa.gzcc.cn/uploadfile/2018/0328/20180328085249565.jpg"></div>
                        <div class="news-list-text">
                            <div class="news-list-title" style="">我校校长杨文轩教授讲授新学期“思政第一课”</div>
                            <div class="news-list-description">3月27日下午,我校校长杨文轩教授在第四教学楼310室为学生讲授了新学期“思政第一课”。</div>
                            <div class="news-list-info"><span><i class="fa fa-clock-o"></i>2018-03-28</span><span><i class="fa fa-building-o"></i>马克思主义学院</span></div>
                        </div>
                    </a>
        </li>
    
    </body>
    </html>
  • 相关阅读:
    unsupported jsonb version number 123
    如何在MPlayer上支持RTSP
    TDengine 时序数据库的 ADO.Net Core 提供程序 Maikebing.EntityFrameworkCore.Taos
    如何使用IoTSharp对接ModBus?
    如何从源码启动和编译IoTSharp
    Asp.Net Core 自动适应Windows服务、Linux服务、手动启动时的内容路径的扩展方法
    MQTTnet 的Asp.Net Core 认证事件的扩展
    Asp.Net Core 中利用QuartzHostedService 实现 Quartz 注入依赖 (DI)
    The remote certificate is invalid according to the validation procedure 远程证书验证无效
    settings插拔式源码
  • 原文地址:https://www.cnblogs.com/wxf2/p/8665299.html
Copyright © 2011-2022 走看看