zoukankan      html  css  js  c++  java
  • 爬取所有校园新闻

    1. 获取单条新闻的#标题#链接#时间#来源#内容 #点击次数,并包装成一个函数。
    2. 获取一个新闻列表页的所有新闻的上述详情,并包装成一个函数。
    3. 获取所有新闻列表页的网址,调用上述函数。
    4. 完成所有校园新闻的爬取工作。
      #完成所有校园新闻的爬取工作。
      import requests
      import re
      from bs4 import BeautifulSoup
      url='http://news.gzcc.cn/html/xiaoyuanxinwen/'
      res=requests.get(url)
      res.encoding='utf-8'
      soup=BeautifulSoup(res.text,'html.parser')
      
      #获取点击次数,#获取一个新闻列表页的所有新闻的上述详情,并包装成一个函数。
      def getclick(newurl):
          id=re.search('_(.*).html',newurl).group(1).split('/')[1]
          clickurl='http://oa.gzcc.cn/api.php?op=count&id={}&modelid=80'.format(id)
          click=int(requests.get(clickurl).text.split(".")[-1].lstrip("html('").rstrip("');"))
          return click
      
      #获取网页内容,#获取单条新闻的#标题#链接#时间#来源#内容 #点击次数,并包装成一个函数。
      def getonpages(listurl):
          res=requests.get(listurl)
          res.encoding='utf-8'
          soup=BeautifulSoup(res.text,'html.parser')
          
          for news in soup.select('li'):
              if len(news.select('.news-list-title'))>0:
                  title=news.select('.news-list-title')[0].text #标题
                  time=news.select('.news-list-info')[0].contents[0].text#时间
                  url1=news.select('a')[0]['href'] #链接
                  source=news.select('.news-list-info')[0].contents[1].text#来源
                  description=news.select('.news-list-description')[0].text #内容
      
                  resd=requests.get(url1)
                  resd.encoding='utf-8'
                  soupd=BeautifulSoup(resd.text,'html.parser')
                  detail=soupd.select('.show-content')[0].text
      
                  click=getclick(url1) #调用点击次数
                  print(title,url1,click)
      
      
      #获取所有新闻列表页的网址,调用上述函数。
      count=int(soup.select('.a1')[0].text.rstrip(""))
      pages=count//10+1
      for i in range(2,4):
          pagesurl="http://news.gzcc.cn/html/xiaoyuanxinwen/{}.html".format(i)
          getonpages(pagesurl)

    5. 完成自己所选其他主题相应数据的爬取工作。
      import requests
      from bs4 import BeautifulSoup
      
      def page(url):
          re=requests.get(url)
          re.encoding="utf-8"
          soup=BeautifulSoup(re.text,'html.parser',from_encoding="utf-8")
          s=soup.select("div")
          s1=soup.select(".breadcrumb-wrapper")[0].text
          
          if soup.select(".breadcrumb-wrapper")[0].text=="伯乐在线 > 首页 > 404":      
              return 0
              
          for i in s:
              if len(i.select(".post-meta"))>0:
                  title=i.select(".post-meta")[0].text        
                  print(title)
       
      
             
      i = 1
      while(i<554):
          urlpage="http://blog.jobbole.com/all-posts/page/{}".format(i)
          i=i+1
          print(page(urlpage))  
          if page(urlpage)==0:
              break
          print(urlpage,i)

  • 相关阅读:
    使用Idea第一次创建一个Mavne工程时没有src目录
    (转)Idea使用教程以及各种问题解决
    'mvn' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
    对于synchronized的理解
    聚簇索引和非聚簇索引的区别
    Mysql的两种存储引擎以及区别
    [期末复习]《语义网与知识图谱》期末复习(二)
    [期末复习]《语义网与知识图谱》期末复习(一)
    [论文理解] Attentional Pooling for Action Recognition
    [论文理解] CapsuleNet
  • 原文地址:https://www.cnblogs.com/husiqi/p/7658177.html
Copyright © 2011-2022 走看看