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

     

  • 相关阅读:
    使用淘宝Str2varlist与str2numlist 代替 in/exist ,提升性能(Oracle)
    由浅入深理解索引的实现
    你知道数据库索引的工作原理吗?
    深入理解数据库磁盘存储(Disk Storage)
    如何解析oracle执行计划
    Beyond Compare 4 最新中文版 注册码 key
    并发和并行的区别
    代码复用的规则
    Some Java exceptions, messages and errors.
    菜鸟学SSH(十六)——Struts2内部是如何工作的
  • 原文地址:https://www.cnblogs.com/lenkay/p/10634943.html
Copyright © 2011-2022 走看看