Sachverhalt: A. Mit Vertrag vom 29. April 2008 ("Contrat de vendange") verpflichteten sich A.A._ und B.A._ (Beschwerdeführer) als Verkäufer, der C._ AG (Beschwerdegegnerin) als Käuferin für die Dauer von vorerst zehn Jahren die gesamte Traubenernte von 82 durch sie bewirtschaftete und im Anhang aufgelistete Rebparzellen mit einer Fläche von rund 86'000 m2 zu liefern. Für die Kaufpreise und -konditionen wurde der offizielle Tarif des Branchenverbandes der Walliser Weine für anwendbar erklärt. Art. 5 des Vertrages lautet wie folgt: "Si l'une des deux parties n'observe pas le présent contrat, elle versera à l'autre partie une indemnité de récolte annuelle, calculée sur la moyenne des récoltes des trois dernières années." In der Folge entstand zwischen den Vertragsparteien Streit in Bezug auf die Ernte 2010. Die C._ AG machte geltend, A.A._ und B.A._ hätten ihr im besagten Jahr nicht das gesamte Traubengut abgeliefert. A.A._ und B.A._ bestritten diesen Vorwurf. Sie wandten unter anderem ein, sie hätten 2010 mehrere der ursprünglichen Parzellen wegen Kündigung des jeweiligen Pachtverhältnisses sowie teils gleichzeitiger Übernahme durch D._ nicht mehr bearbeiten können. Weiter sei die Ernte witterungsbedingt sowie infolge Pilzbefalls im fraglichen Jahr ausserordentlich schlecht ausgefallen. B. Am 27. Juli 2012 erhoben A.A._ und B.A._ beim Bezirksgericht Leuk und Westlich-Raron Klage gegen die C._ AG auf insgesamt Fr. 76'888.20 (Fr. 61'510.56 und Fr. 15'377.64) zuzüglich Zins als Kaufpreis für das 2010 abgelieferte Traubengut. Die C._ AG erhob zur Durchsetzung der Konventionalstrafe Widerklage über Fr. 180'000.-- zuzüglich Zins. In ihren Schlussanträgen reduzierte sie den Betrag auf Fr. 173'463.95. Das Bezirksgericht führte eine Instruktionsverhandlung und Beweisabnahmen durch. Am 29. Januar 2016 beauftragte es E._, conseiller viticole bei der F._ Sàrl in U._, mit einer Expertise. Letztere wurde am 20. Mai 2016 erstattet und am 22. September 2016 sowie am 7. März 2017 ergänzt. Am 9. Mai 2018 verurteilte das Bezirksgericht A.A._ und B.A._, der C._ AG Fr. 33'111.80 zu bezahlen. Dieses Urteil fochten A.A._ und B.A._ beim Kantonsgericht Wallis an. Mit Urteil vom 5. November 2019 hiess das Kantonsgericht ihre Berufung teilweise gut, hob das Urteil des Bezirksgerichts auf und verurteilte die C._ AG zur Bezahlung von Fr. 76'888.20 "unter Abzug" von Fr. 49'160.75, jeweils nebst Zins. C. A.A._ und B.A._ verlangen mit Beschwerde in Zivilsachen, das Urteil des Obergerichts sei insofern abzuändern, als ihre Klage vollumfänglich gutzuheissen und die Widerklage vollumfänglich abzuweisen sei. Eventualiter sei das angefochtene Urteil aufzuheben und die Sache an die Vorinstanz zurückzuweisen. Die Vorinstanz hat auf Gegenbemerkungen verzichtet, unter Verweis auf ihr Urteil. Die C._ AG begehrt, die Beschwerde abzuweisen, soweit darauf einzutreten sei. Die Parteien haben eine Replik bzw. eine Duplik eingereicht.