Написах един скрипт който извлича програма за даден канал на телевизия от "dnes точка bg "
Когато се извиква скрипта се очаква да се добави като аргумент число .При мен работи с допълнителен bash скрипт.
Може да се направи и с един файл само на питон, но понеже познанията ми за питон клонят към нула го направих както мога
Код:
#!/usr/bin/python3
import bs4
import re
import sys
from datetime import date
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
nom = sys.argv[1]
my_url=f'https://www.dnes.bg/tv.php?tv={nom}'
uClient = uReq(my_url)
page_soup = soup(uClient.read(), "html.parser")
uClient.close()
containers = page_soup.find("div" ,{"class":"pad bProgram"})
con = containers.findAll("div" ,{"class":"b5 tv_line clearfix"})
data = str(con).replace('</div>' , ' ').replace(',' , ' ').replace('<span class="now">' , ' ').replace('<div class="now">' , ' ')
match = re.compile('"info">(.+?)<.+?"ttl">(.+?)<.+?', re.S).findall(data)
for info, ttl in match:
desc = info.strip() + ' - ' + ttl.strip()
print (desc)
Код:
#!/bin/bash
echo "
btv = 13
btvc = 4725
nova = 42
knova = 20
hbo = 14
hbo2 = 11212
hbo3 = 11213
discovery = 56
bnt1 =11199
bnt2 = 11087
bnt3 = 11234
bnt4 = 11235
dav = 11120
tv1000 = 8429
ort = 11133
movst = 11178
ntv = 11244
nickt = 11256"
let ch=0
#as long as phonex is 0 keep looping
while [ $ch -eq 0 ];
do
#get channel
echo "Избери канал"
read ch
#make sure the input contains digits
if [[ $ch =~ [0-9] ]];
then
#if it does contain digits
#change ch value to stop loop
python3 ~/bin/tvpr $ch # това е пътя и името на горният скрипт
let ch=1
else
clear
echo "invalid number"
sleep 1
fi
done