• 爬取校园新闻首页的新闻


    1. 用requests库和BeautifulSoup库,爬取校园新闻首页新闻的标题、链接、正文。

    url = "http://news.gzcc.cn/html/xiaoyuanxinwen/"
    res = requests.get(url);
    res.encoding = "utf-8"
    soup = BeautifulSoup(res.text,"html.parser");
     
    for news in soup.select("li"):
        if len(news.select(".news-list-title"))>0:  #排除为空的li
            time = news.select(".news-list-info")[0].contents[0].text
            title = news.select(".news-list-title")[0].text
            description = news.select(".news-list-description")[0].text
            a = news.select('a')[0].attrs['href']
            detail_res = requests.get(a)
            detail_res.encoding = "utf-8"
            detail_soup = BeautifulSoup(detail_res.text, "html.parser")
            print(detail_soup.select("#content")[0].text)#正文
            print(time, title, description, a)
            content = detail_soup.select("#content")[0].text
            info = detail_soup.select(".show-info")[0].text
            date_time = info.lstrip('发布时间:')[:19]
            print(info)
            break
    

      

      2. 分析字符串,获取每篇新闻的发布时间,作者,来源,摄影等信息。

    info = '发布时间:2018-04-01 11:57:00      作者:陈流芳  审核:权麟春  来源:马克思主义学院      点击:次'
    detail_time = info.lstrip('发布时间:')[:19]
    sh = info[info.find("审核"):].split()[0].lstrip('审核:')
    print(detail_time,sh)
    

      3. 将其中的发布时间由str转换成datetime类型。

    # 获取当前的时间
    now_time = datetime.now();
    now_time.year
    # 将字符串转化为时间
    print(datetime.strptime(date_time,"%Y-%m-%d %H:%M:%S"))
    # 将时间转化为字符串
    print(now_time.strftime('%Y\%m\%d'))
    

      4. 将完整的代码及运行结果截图发布在作业上。

    import requests
    from bs4 import BeautifulSoup
    from datetime import datetime
     
    url = "http://news.gzcc.cn/html/xiaoyuanxinwen/"
    res = requests.get(url);
    res.encoding = "utf-8"
    soup = BeautifulSoup(res.text,"html.parser");
     
    for news in soup.select("li"):
        if len(news.select(".news-list-title"))>0:  #排除为空的li
            time = news.select(".news-list-info")[0].contents[0].text
            title = news.select(".news-list-title")[0].text
            description = news.select(".news-list-description")[0].text
            a = news.select('a')[0].attrs['href']
            detail_res = requests.get(a)
            detail_res.encoding = "utf-8"
            detail_soup = BeautifulSoup(detail_res.text, "html.parser")
            print(detail_soup.select("#content")[0].text)#正文
     
            print(time, title, description, a)
     
            content = detail_soup.select("#content")[0].text
            info = detail_soup.select(".show-info")[0].text
            date_time = info.lstrip('发布时间:')[:19]
            print(info)
            break
     
    info = '发布时间:2018-04-01 11:57:00      作者:陈流芳  审核:权麟春  来源:马克思主义学院      点击:次'
    detail_time = info.lstrip('发布时间:')[:19]
    sh = info[info.find("审核"):].split()[0].lstrip('审核:')
    print(detail_time,sh)
     
     
    # # 多个名字查找作者
    info1 = '发布时间:2018-04-01 11:57:00      作者:陈流芳 许健杰  审核:权麟春   来源:马克思主义学院    点击:次 '
    info1 = info1[info1.find("作者"):info1.find('审核:')].lstrip('作者:').split()[1]
    print(info1)
     
    # 获取当前的时间
    now_time = datetime.now();
    now_time.year
     
    # 将字符串转化为时间
    print(datetime.strptime(date_time,"%Y-%m-%d %H:%M:%S"))
     
    # 将时间转化为字符串
    print(now_time.strftime('%Y\%m\%d'))
    

      

  • 相关阅读:
    NOI2010 超级钢琴
    [linux][nginx] 常用2
    [linux][nginx] 常用
    [PHP]听说随机数mt_rand()比rand()速度快,闲的无聊测试了一下!
    [linux] 权限问题
    [Laravel] 自带分页实现以及links方法不存在错误
    [YII2] 去除自带js,加载自己的JS,然后ajax(json)传值接值!
    [PHP]PHP设计模式:单例模式
    [html]浏览器标签小图标LOGO简单设置
    [javascript]JS获取当前时间戳的方法
  • 原文地址:https://www.cnblogs.com/qq412158152/p/8779816.html
Copyright © 2020-2023  润新知