switch to requests API for emission
This commit is contained in:
parent
db7890ff4b
commit
d62b16df39
@ -1,79 +1,84 @@
|
|||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
import urllib.request
|
import requests
|
||||||
import re
|
import re
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from time import sleep
|
from time import sleep
|
||||||
|
|
||||||
#debug
|
# debug
|
||||||
#import pprint
|
# import pprint
|
||||||
|
|
||||||
|
|
||||||
class Emmission(object):
|
class Emmission(object):
|
||||||
loading = False
|
loading = False
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self._LoadreferencePage()
|
self._LoadreferencePage()
|
||||||
|
|
||||||
def _LoadreferencePage(self):
|
def _LoadreferencePage(self):
|
||||||
URL="https://www.programme-tv.net/programme/canal-5/"
|
URL = "https://www.programme-tv.net/programme/canal-5/"
|
||||||
try:
|
response = requests.get(URL)
|
||||||
response = urllib.request.urlopen(URL)
|
|
||||||
except urllib.error.URLError:
|
|
||||||
return None
|
|
||||||
print("load")
|
print("load")
|
||||||
self.html = BeautifulSoup(response.read(),"html.parser")
|
self.html = BeautifulSoup(response.content, "html.parser")
|
||||||
self.timeexp=datetime.utcnow() +timedelta(seconds=30)
|
self.timeexp = datetime.utcnow() + timedelta(seconds=30)
|
||||||
|
|
||||||
def parse_emmission(self,strsearch):
|
def parse_emmission(self, strsearch):
|
||||||
if ((datetime.utcnow() > self.timeexp) and (self.loading == False)):
|
if (datetime.utcnow() > self.timeexp) and (self.loading is False):
|
||||||
self.loading = True
|
self.loading = True
|
||||||
self._LoadreferencePage()
|
self._LoadreferencePage()
|
||||||
self.loading = False
|
self.loading = False
|
||||||
else:
|
else:
|
||||||
while(self.loading):
|
while self.loading:
|
||||||
sleep(0.1)
|
sleep(0.1)
|
||||||
pass
|
pass
|
||||||
strsearch=strsearch.replace('É','E')
|
strsearch = strsearch.replace("É", "E")
|
||||||
strsearch=strsearch.strip()
|
strsearch = strsearch.strip()
|
||||||
print(strsearch)
|
print(strsearch)
|
||||||
chaineElement=self.html.find(string=re.compile(re.escape(strsearch)))
|
chaineElement = self.html.find(string=re.compile(re.escape(strsearch)))
|
||||||
if chaineElement == None:
|
if chaineElement == None:
|
||||||
strsearch=strsearch.replace(" ","")
|
strsearch = strsearch.replace(" ", "")
|
||||||
chaineElement=self.html.find(string=re.compile(re.escape(strsearch)))
|
chaineElement = self.html.find(string=re.compile(re.escape(strsearch)))
|
||||||
if chaineElement == None:
|
if chaineElement == None:
|
||||||
return "can't find channel"
|
return "can't find channel"
|
||||||
emissionElement=chaineElement.parent.parent.parent.find_next_sibling()
|
emissionElement = chaineElement.parent.parent.parent.find_next_sibling()
|
||||||
print(emissionElement)
|
print(emissionElement)
|
||||||
link = emissionElement.find("a")
|
link = emissionElement.find("a")
|
||||||
href = link['href']
|
href = link["href"]
|
||||||
try:
|
try:
|
||||||
img=emissionElement.find_next('img')['data-src']
|
img = emissionElement.find_next("img")["data-src"]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
img=emissionElement.find_next('img')['src']
|
img = emissionElement.find_next("img")["src"]
|
||||||
response = urllib.request.urlopen(href)
|
response = requests.get(href)
|
||||||
parse=BeautifulSoup(response.read(),"html.parser")
|
parse = BeautifulSoup(response.content, "html.parser")
|
||||||
divcasting=parse.select_one(".peopleList")
|
divcasting = parse.select_one(".peopleList")
|
||||||
if (divcasting):
|
if divcasting:
|
||||||
casting=divcasting.find_all(href=re.compile("\/biographie.*"))
|
casting = divcasting.find_all(href=re.compile("\/biographie.*"))
|
||||||
count=0
|
count = 0
|
||||||
for actor in casting:
|
for actor in casting:
|
||||||
casting[count]=actor['title']
|
casting[count] = actor["title"]
|
||||||
count+=1
|
count += 1
|
||||||
else:
|
else:
|
||||||
casting= None
|
casting = None
|
||||||
divsynopsis=parse.select_one(".synopsis")
|
divsynopsis = parse.select_one(".synopsis")
|
||||||
if (divsynopsis):
|
if divsynopsis:
|
||||||
synopsis=divsynopsis.text
|
synopsis = divsynopsis.text
|
||||||
else:
|
else:
|
||||||
img=None
|
img = None
|
||||||
synopsis=""
|
synopsis = ""
|
||||||
|
|
||||||
return {'title':link['title'],'href':href,'casting':casting,'synopsis':remove_first_space(synopsis),'img':img}
|
return {
|
||||||
|
"title": link["title"],
|
||||||
|
"href": href,
|
||||||
|
"casting": casting,
|
||||||
|
"synopsis": remove_first_space(synopsis),
|
||||||
|
"img": img,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def remove_first_space (string):
|
def remove_first_space(string):
|
||||||
space_number=0
|
space_number = 0
|
||||||
for char in string:
|
for char in string:
|
||||||
if char.isspace():
|
if char.isspace():
|
||||||
space_number+=1
|
space_number += 1
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
return string[space_number:]
|
return string[space_number:]
|
||||||
|
@ -1,21 +1,25 @@
|
|||||||
astroid==2.2.5
|
astroid==2.2.5
|
||||||
beautifulsoup4==4.9.3
|
beautifulsoup4==4.9.3
|
||||||
bs4==0.0.1
|
bs4==0.0.1
|
||||||
Click==7.0
|
certifi==2021.10.8
|
||||||
Flask==1.0.2
|
charset-normalizer==2.0.11
|
||||||
Flask-Cors==3.0.7
|
click==8.0.3
|
||||||
|
Flask==2.0.2
|
||||||
|
Flask-Cors==3.0.10
|
||||||
gunicorn==20.0.4
|
gunicorn==20.0.4
|
||||||
|
idna==3.3
|
||||||
isort==4.3.17
|
isort==4.3.17
|
||||||
itsdangerous==1.1.0
|
itsdangerous==2.0.1
|
||||||
Jinja2==2.10.1
|
Jinja2==3.0.3
|
||||||
lazy-object-proxy==1.3.1
|
lazy-object-proxy==1.3.1
|
||||||
MarkupSafe==1.1.1
|
MarkupSafe==2.0.1
|
||||||
mccabe==0.6.1
|
mccabe==0.6.1
|
||||||
PyJWT==1.7.1
|
PyJWT==1.7.1
|
||||||
pylint==2.3.1
|
pylint==2.3.1
|
||||||
|
requests==2.27.1
|
||||||
six==1.12.0
|
six==1.12.0
|
||||||
soupsieve==1.9.1
|
soupsieve==1.9.1
|
||||||
typed-ast==1.5.2
|
typed-ast==1.5.2
|
||||||
Werkzeug==0.16.0
|
urllib3==1.26.8
|
||||||
|
Werkzeug==2.0.2
|
||||||
wrapt==1.11.1
|
wrapt==1.11.1
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user