zoukankan      html  css  js  c++  java
  • 【Python】第一个爬虫和测试

    一、羽毛球体育竞技测试

    利用try···except进行异常处理(此外还可以利用doctest库进行测试,doctest.testmod()

    def gameover(setA,setB):
        if setA==20 or setB==20:
            return True
        else:
            return False
    try:
        a=gameover(18,25)
        print(a)
    except:
        print("Error")
    

     调试结果如下:

    二、python网络爬虫(requests库)

    requests库解析:

    (1)七个常用方法

    • requests.request():构造一个请求
    • requests.get():获取网页
    • requests.head():获取网页头信息
    • requests.post():向网页提交post方法
    • requests.put():向网页提交put方法
    • requests.patch():向网页提交局部修改请求
    • requests.delete():向网页提交删除请求

     (2)五个常用的网页requests属性

    • status_code:200表示成功
    • text:http响应内容的字符串形式
    • encoding:从http header中猜测的响应内容编码方式
    • apparent_encoding:从内容解析出的响应内容编码方式(备选编码方式)
    • r.content:响应内容的二进制形式

    爬360浏览器主页

    # -*- coding: utf-8 -*-
    """
    Created on Mon May 20 11:13:38 2019
    
    @author: yyp
    """
    
    import requests
    def getHTMLText(url):
        try:
            r=requests.get(url,timeout=30)
            r.raise_for_status()
            r.encoding='utf-8'
            return r.text
        except:
            return ""
    url="http://browser.360.cn"
    print(getHTMLText(url))
    

      结果如下:

    三、中国大学排名爬虫

    # -*- coding: utf-8 -*-
    """
    Created on Thu May 23 14:33:45 2019
    
    @author: yyp
    """
    import requests
    from bs4 import BeautifulSoup
    allUniv=[]#储存全部表格数据,二维数组
    def getHTMLText(url):
        try:
            r=requests.get(url,timeout=20)
            r.raise_for_status()
            r.encoding='utf-8'
            return r.text
        except:
            return""
    def fillUnivList(soup):
        data=soup.find_all('tr')#找到所有tr标签
        for tr in data:   #循环tr
            ltd=tr.find_all('td') #在每个tr标签中找到所有的td标签
            if len(ltd)==0:
                continue
            singleUniv=[]  #生成一维数组
            for td in ltd:
                singleUniv.append(td.string)#提取td标签中的信息
            allUniv.append(singleUniv)
    def printUnivList(num):
        print("{:^4}{:^10}{:^5}{:^8}{:^10}".format("排名","学校名称","省市","总分"
              ,"培养规模"))
         
        for i in range(num):
            u=allUniv[i]
            print("{:^4}{:^10}{:^5}{:^8}{:^10}".format(u[0],u[1],u[2],u[3],u[6]))
    def main(num):
        url='http://www.zuihaodaxue.cn/
           zuihaodaxuepaiming2018.html'
        html=getHTMLText(url)
        soup=BeautifulSoup(html,"html.paraer")
        fillUnivList(soup)
        printUnivList(num)
    main()
    

      

  • 相关阅读:
    安装VMware16兼容Hyper-v+WSL2+Docker+解决0x80370102报错
    家用联通光纤开启IPv6
    配置微软Azure大数据HDInsight云集群
    Hadoop集群搭建-05安装配置YARN
    Hadoop集群搭建-04安装配置HDFS
    Hadoop集群搭建-03编译安装hadoop
    Hadoop集群搭建-02安装配置Zookeeper
    Hadoop集群搭建-01前期准备
    springMVC+request.session实现用户登录和访问权限控制
    idea+spring4+springmvc+mybatis+maven实现简单增删改查CRUD
  • 原文地址:https://www.cnblogs.com/yyp-20190107/p/10910852.html
Copyright © 2011-2022 走看看