• 爬取所有校园新闻


    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)

  • 相关阅读:
    Docker生态会重蹈Hadoop的覆辙吗?
    刘志强博士:专业涵养 奉献情怀
    Sublime Text3前端必备插件
    JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解
    jvm的stack和heap,JVM内存模型,垃圾回收策略,分代收集,增量收集(转)
    Eclipse安装MAT插件
    tomcat内存泄漏存入dump文件
    CSS中behavior属性语法简介
    get/post时中文乱码问题的解决办法
    Java序列化的机制和原理
  • 原文地址:https://www.cnblogs.com/husiqi/p/7658177.html
Copyright © 2020-2023  润新知