zoukankan      html  css  js  c++  java
  • 理解爬虫原理

    作业要求源于: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='')

     

  • 相关阅读:
    免费的视频、音频转文本
    Errors are values
    Codebase Refactoring (with help from Go)
    Golang中的坑二
    Cleaner, more elegant, and wrong(msdn blog)
    Cleaner, more elegant, and wrong(翻译)
    Cleaner, more elegant, and harder to recognize(翻译)
    vue控制父子组件渲染顺序
    computed 和 watch 组合使用,监听数据全局数据状态
    webstorm破解方法
  • 原文地址:https://www.cnblogs.com/lenkay/p/10634943.html
Copyright © 2011-2022 走看看