zoukankan      html  css  js  c++  java
  • python-爬取网络新闻

    1. 获取单条新闻的#标题#链接#时间#来源#内容 #点击次数,并包装成一个函数。
    2. 获取一个新闻列表页的所有新闻的上述详情,并包装成一个函数。
    3. 获取所有新闻列表页的网址,调用上述函数。
    4. 完成所有校园新闻的爬取工作。
    5. 完成自己所选其他主题相应数据的爬取工作。
     1 import requests
     2 import re
     3 from bs4 import BeautifulSoup
     4 url='http://news.gzcc.cn/html/xiaoyuanxinwen/'
     5 res=requests.get(url)
     6 res.encoding='utf-8'
     7 soup=BeautifulSoup(res.text,'html.parser')
     8 
     9 #获取点击次数
    10 def getclick(newurl):
    11     id=re.search('_(.*).html',newurl).group(1).split('/')[1]
    12     clickurl='http://oa.gzcc.cn/api.php?op=count&id={}&modelid=80'.format(id)
    13     click=int(requests.get(clickurl).text.split(".")[-1].lstrip("html('").rstrip("');"))
    14     return click
    15 
    16 #获取网页内容
    17 def getonpages(listurl):
    18     res=requests.get(listurl)
    19     res.encoding='utf-8'
    20     soup=BeautifulSoup(res.text,'html.parser')
    21     
    22     for news in soup.select('li'):
    23         if len(news.select('.news-list-title'))>0:
    24             title=news.select('.news-list-title')[0].text #标题
    25             time=news.select('.news-list-info')[0].contents[0].text#时间
    26             url1=news.select('a')[0]['href'] #链接
    27             source=news.select('.news-list-info')[0].contents[1].text#来源
    28             description=news.select('.news-list-description')[0].text #内容
    29 
    30             resd=requests.get(url1)
    31             resd.encoding='utf-8'
    32             soupd=BeautifulSoup(resd.text,'html.parser')
    33             detail=soupd.select('.show-content')[0].text
    34 
    35             click=getclick(url1) #调用点击次数
    36             print(title,url1,click)
    37 
    38 
    39 
    40 count=int(soup.select('.a1')[0].text.rstrip(""))
    41 pages=count//10+1
    42 for i in range(2,4):
    43     pagesurl="http://news.gzcc.cn/html/xiaoyuanxinwen/{}.html".format(i)
    44     getonpages(pagesurl)

  • 相关阅读:
    c#的运算符
    modbus-poll和modbus-slave工具的学习使用——modbus协议功能码1的解析
    modbus-poll和modbus-slave工具的学习使用——环境搭建
    STM32L4R9使用HAL库调试IIC注意事项
    蓝牙透传——介绍蓝牙最简单、最常见的通讯方式
    Chapter 2 Open Book——11
    Chapter 2 Open Book——10
    Chapter 2 Open Book——9
    线程中sleep方法和wait方法有什么区别?
    你所不知道的mybatis居然也有拦截器
  • 原文地址:https://www.cnblogs.com/maykok/p/7652052.html
Copyright © 2011-2022 走看看