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='')

     

  • 相关阅读:
    洛谷 P1903 【模板】分块/带修改莫队(数颜色)
    BZOJ 2038: [2009国家集训队]小Z的袜子(hose)
    LibreOJ #6208. 树上询问
    LibreOJ #6002. 「网络流 24 题」最小路径覆盖
    hdu 3861 The King’s Problem
    洛谷 P2868 [USACO07DEC]观光奶牛Sightseeing Cows
    洛谷 P2905 [USACO08OPEN]农场危机Crisis on the Farm
    洛谷 U3348 A2-回文数
    洛谷 P1001 A+B Problem
    LibreOJ #2130. 「NOI2015」软件包管理器
  • 原文地址:https://www.cnblogs.com/lenkay/p/10634943.html
Copyright © 2011-2022 走看看