• 理解爬虫原理


    作业要求源于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2881 

    1. 简单说明爬虫原理

    请求网站并提取数据的自动化程序。

    2. 理解爬虫开发过程

    1:向服务器发起请求
    通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等信息,等待服务器的响应。
    2:获取响应内容
    如果服务器正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能有HTML、JSON、二进制文件(如图片、视频等类型)。
    3:解析内容
    得到的内容可能是HTML,可以用正则表达式、网页解析库进行解析。可能是JSON,可以直接转成JOSN对象进行解析,可能是二进制数据,可以保存或者进一步处理
    4:保存内容
    保存形式多样,可以保存成文本,也可以保存至数据库,或者保存成特定格式的文件。
     
    import requests
    import bs4
    from bs4 import BeautifulSoup
    url = "http://news.gzcc.cn/html/2019/jxky_0329/11094.html"
    res = requests.get(url)
    res.encoding = 'utf-8'
    soupn = BeautifulSoup(res.text,'html.parser')
    print(soupn)

    3.了解网页

    写一个简单的html文件,包含多个标签,类,id

    <html> 
        <body> 
              <h1 id="title">hi</h1> 
              <a href="#" class="link">hi,this is link1</a>
              <a href="# link2" class="link" qao=957> hi,this is link2</a>
        </body> 
    </html>

    4.

    使用 Beautiful Soup 解析网页;

    通过BeautifulSoup(html_sample,'html.parser')把上述html文件解析成DOM Tree

     5.提取一篇校园新闻的标题、发布时间、发布单位、作者、点击次数、内容等信息

    代码:

    import requests
    import bs4
    from bs4 import BeautifulSoup
    url = "http://news.gzcc.cn/html/2019/jxky_0328/11087.html"
    res = requests.get(url)
    res.encoding = 'utf-8'
    soupn = BeautifulSoup(res.text,'html.parser')
    print("内容:"+soupn.select('.show-content')[0].text)
    print(soupn.title)
    #print(soupn.select(".show-info")[0].text.split(':')[1])
    
    info = soupn.select(".show-info")[0].text.split()
    #print(info)
    xinDate = info[0].split(':')[1]
    print(xinDate)
    xinTime = info[1]
    print(xinTime)
    newdt = xinDate + ' '+ xinTime
    print(newdt)
    from datetime import datetime
    now = datetime.now()
    #now = now.strptime('%Y{y}%m{m}%d{d} %H{h}%M{f}%S{s}').__format__(y='年',m='月',d='日',h='时',f='分',s='秒')
    now = now.strftime('%Y{y}%m{m}%d{d} %H{h}%M{f}%S{s}').format(y='',m='',d='',h='',f='',s='')

     

  • 相关阅读:
    Java线程池,你了解多少?
    Git-常用命令
    CentOS6.6 编译Redis报错:"Newer version of jemalloc required"
    IDEA 常用快捷键
    Java并发编程(4)--生产者与消费者模式介绍
    CSS样式----浮动(图文详解)
    实现键盘记录的e.Whick和keyCode,兼容FireFox和IE
    如何用Fireworks制作经典的扫光字GIF动画
    asp.net中label控件设置字体大小
    [HttpException (0x80004005): 应用程序已预编译,因此不允许使用目录“/App_Code/”。]
  • 原文地址:https://www.cnblogs.com/lenkay/p/10634943.html
Copyright © 2020-2023  润新知