• 获取全部校园新闻的总页数


    import re
    import requests
    from bs4 import BeautifulSoup
    from datetime import datetime

    def writeNewsDetail(content):
    f=open('gzccNews.txt','a',encoding='utf-8')
    f.write(content)
    f.close()

    def getClickCount(newsUrl):
    newsId = re.findall('\_(.*).html', newsUrl)[0].split('/')[1]
    clickUrl = 'http://oa.gzcc.cn/api.php?op=count&id=9024&modelid=80'.format(newsId)

    return(int(requests.get(clickUrl).text.split('.html')[-1].lstrip("('").rstrip("');")))

    def getNewsDetail(newsUrl):
    resd = requests.get(newsUrl)
    resd.encoding = 'utf-8'
    soupd = BeautifulSoup(resd.text, 'html.parser')

    news={}
    news['title'] = soupd.select('.show-title')[0].text
    info = soupd.select('.show-info')[0].text
    news['dt'] = datetime.strftime(info.lstrip('发布时间:')[:19],'%Y-%m-%d %H:%M:%S')
    if info.find('来源:')>0:
    news['source']=info[info.find('来源:'):].split()[0].lstrip('来源:')
    else:
    news['source']='none'
    news['content']=soupd.select('.show-content')[0].text.strip()
    writeNewsDetail(news['content'])
    news['click']=getClickCount(newsUrl)
    news['newsUrl']=newsUrl
    print(news)
    return (news)



    def getListPage(pageUrl):
    res=requests.get(pageUrl)
    res.encoding='utf-8'
    soup=BeautifulSoup(res.text,'html.parser')

    newsList=[]
    for news in soup.select('li'):
    if len(news.select('.new-list-title'))>0:
    newsUrl=news.select('a')[0].attrs['href']
    newsList.append(getNewsDetail(newsUrl))
    return (newsList)


    def getPageN(): # 新闻列表页的总页数
    res = requests.get('http://news.gzcc.cn/html/xiaoyuanxinwen/')
    res.encoding = 'utf-8'
    soup = BeautifulSoup(res.text, 'html.parser')
    n = int(soup.select('.a1')[0].text.rstrip('条'))
    return (n // 10 + 1)

    newsTotal=[]
    firstPageUrl='http://news.gzcc.cn/html/xiaoyuanxinwen/'
    newsTotal.extend(getListPage(firstPageUrl))
    n = getPageN()
    for i in range(n, n+1):
    listPageUrl = 'http://news.gzcc.cn/html/xiaoyuanxinwen/{}.html'.format(i)
    newsTotal.extend(getListPage(listPageUrl))

    print(newsTotal)
  • 相关阅读:
    detectron源码阅读,avgpool是什么意思、特征意思
    detectron2 特征金字塔代码讲解,detectron2train的过程
    detectron2 一个整体的demo说明自定义数据集以及训练过程
    fcos学习问题
    直接debug在源码上修改的方式
    为什么如果待分类类别是10个,类别范围可以设置成(9,11)
    delphi 各版本下载
    oracle11g 修改字符集 修改为ZHS16GBK
    delphi 判断调试状态
    fastreport5 有变量时 不加引号字符串出错 提示没有声明的变量
  • 原文地址:https://www.cnblogs.com/126lc/p/8806512.html
Copyright © 2020-2023  润新知