Bonjour tout le monde, depuis que j'ai changé de machine. J'ai un souci avec mon script Python 3.
Le code :
Si vous avez besoin de commentaires dites le moi ![]()
#!/usr/bin/python3
from bs4 import BeautifulSoup
from time import sleep
import sqlite3
import datetime
import requests
import re
class Forum:
def __init__(self, forum, url_forum):
self.forum = forum
self.url_forum = url_forum
pattern = '([0-9]{1,5})'
self.pattern = re.compile(pattern)
def add_to_database(self):
connection = sqlite3.connect("database.db")
c = connection.cursor()
now = datetime.datetime.today()
nb_co = self.recup_co()
text = "INSERT INTO {0}(datetime, nb_co) VALUES('{1}', '{2}')".format(self.forum, now, nb_co)
c.execute(text)
connection.commit()
connection.close()
print(now, self.forum, str(nb_co))
sleep(1)
def recup_co(self):
r = requests.get(self.url_forum)
page_html = str(r.text)
page = BeautifulSoup(page_html, 'html.parser')
resultat = page.select(".nb-connect-fofo")
nb_co = re.search(self.pattern, str(resultat))
return nb_co.group(0)
def main():
dixhuit_vingtcinq = Forum("dixhuit_vingtcinq", "http://www.jeuxvideo.com/forums/0-51-0-1-0-1-0-blabla-18-25-ans.htm")
moins_quinze = Forum("moins_quinze", "http://www.jeuxvideo.com/forums/0-15-0-1-0-1-0-blabla-moins-de-15-ans.htm")
quinze_dixhuit = Forum("quinze_dixhuit", "http://www.jeuxvideo.com/forums/0-50-0-1-0-1-0-blabla-15-18-ans.htm")
overwatch = Forum("overwatch", "http://www.jeuxvideo.com/forums/0-33972-0-1-0-1-0-overwatch.htm")
forums = [dixhuit_vingtcinq, moins_quinze, quinze_dixhuit, overwatch]
while(True):
for forum in forums:
try:
forum.add_to_database()
except:
print("An error occured with the forum '{0}' at {1}".format(forum.forum, datetime.datetime.today()))
sleep(5)
sleep(60)
main()
Comme vous pouvez voir en haut, j'utilise beautifulsoup4 et requests, que j'ai installé via les commandes "apt-get install python3-bs4 ni pip3" et "pip3 install requests".
Sauf que j'ai une erreur assez grosse et que je n'arrive pas à comprendre à vrai dire, qui est :
^CTraceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 331, in _make_request
httplib_response = conn.getresponse(buffering=True)
TypeError: getresponse() got an unexpected keyword argument 'buffering'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 516, in urlopen
body=body, headers=headers)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 333, in _make_request
httplib_response = conn.getresponse()
File "/usr/lib/python3.4/http/client.py", line 1172, in getresponse
response.begin()
File "/usr/lib/python3.4/http/client.py", line 351, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.4/http/client.py", line 321, in _read_status
raise BadStatusLine(line)
http.client.BadStatusLine: ''
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 362, in send
timeout=timeout
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 559, in urlopen
_pool=self, _stacktrace=stacktrace)
File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 245, in incr ement
raise six.reraise(type(error), error, _stacktrace)
File "/usr/lib/python3/dist-packages/six.py", line 624, in reraise
raise value.with_traceback(tb)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 516, in urlopen
body=body, headers=headers)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 333, in _make_request
httplib_response = conn.getresponse()
File "/usr/lib/python3.4/http/client.py", line 1172, in getresponse
response.begin()
File "/usr/lib/python3.4/http/client.py", line 351, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.4/http/client.py", line 321, in _read_status
raise BadStatusLine(line)
urllib3.exceptions.ProtocolError: ('Connection aborted.', BadStatusLine("''",))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "parser.py", line 56, in main
forum.add_to_database()
File "parser.py", line 25, in add_to_database
nb_co = self.recup_co()
File "parser.py", line 36, in recup_co
r = requests.get(self.url_forum)
File "/usr/lib/python3/dist-packages/requests/api.py", line 60, in get
return request('get', url, **kwargs)
File "/usr/lib/python3/dist-packages/requests/api.py", line 49, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 457, in reque st
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 569, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 407, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', BadStatusLine("''", ))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "parser.py", line 62, in <module>
main()
File "parser.py", line 59, in main
sleep(5)
KeyboardInterrupt
sosolebg@mc:~/parser_jvc$ screen -S python3_parser
File "/usr/lib/python3.4/http/client.py", line 1172, in getresponse
response.begin()
File "/usr/lib/python3.4/http/client.py", line 351, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.4/http/client.py", line 321, in _read_status
raise BadStatusLine(line)
http.client.BadStatusLine: ''
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 362, in send
timeout=timeout
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 559, in urlopen
_pool=self, _stacktrace=stacktrace)
File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 245, in increment
raise six.reraise(type(error), error, _stacktrace)
File "/usr/lib/python3/dist-packages/six.py", line 624, in reraise
raise value.with_traceback(tb)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 516, in urlopen
body=body, headers=headers)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 333, in _make_request
httplib_response = conn.getresponse()
File "/usr/lib/python3.4/http/client.py", line 1172, in getresponse
response.begin()
File "/usr/lib/python3.4/http/client.py", line 351, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.4/http/client.py", line 321, in _read_status
raise BadStatusLine(line)
urllib3.exceptions.ProtocolError: ('Connection aborted.', BadStatusLine("''",))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "parser.py", line 60, in <module>
main()
File "parser.py", line 55, in main
forum.add_to_database()
File "parser.py", line 25, in add_to_database
nb_co = self.recup_co()
File "parser.py", line 36, in recup_co
r = requests.get(self.url_forum)
File "/usr/lib/python3/dist-packages/requests/api.py", line 60, in get
return request('get', url, **kwargs)
File "/usr/lib/python3/dist-packages/requests/api.py", line 49, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 457, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 569, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 407, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', BadStatusLine("''",))
Comme vous pouvez voir c'est assez hrand et je sais pas vraiment par où commencer, car sous mon ancienne machine ca fonctionnait niquel ![]()
Donc ma question est, auriez vous une idée d'où l'erreur est produite ?
Merci d'avoir lu jusque là ![]()
Le 10 août 2017 à 02:55:48 kellybrookshed a écrit :
Moi qui pensait à une vraie réponse je suis déçu
J'ai DDB au passage
Quand tu as un problème et que tu demandes de l'aide, essaye de nous épargner les détails de ton programme.
https://stackoverflow.com/help/mcve
http://sscce.org/
Je ne dis pas ça méchamment, c'est juste une bonne pratique pour simplifier le travail du lecteur qui permet très souvent aussi de toi-même te rendre compte de ce qui cloche.
@Exacompta: d'où provient ton pseudo, tu es comptable (ou expert) ?
(je dis ça car j'ai un BTS comptabilité-gestion)
Le 10 août 2017 à 14:12:30 Gaetano-GX a écrit :
@Exacompta: d'où provient ton pseudo, tu es comptable (ou expert) ?
(je dis ça car j'ai un BTS comptabilité-gestion)
Non, juste la marque. Je cherchais un pseudo cool et connu ![]()
Le 10 août 2017 à 14:00:06 Blaff10 a écrit :
Quand tu as un problème et que tu demandes de l'aide, essaye de nous épargner les détails de ton programme.
https://stackoverflow.com/help/mcve
http://sscce.org/
Je ne dis pas ça méchamment, c'est juste une bonne pratique pour simplifier le travail du lecteur qui permet très souvent aussi de toi-même te rendre compte de ce qui cloche.
Je vais faire ça et chercher un peu c'est vrai que j'ai pas bien poser mon problème ![]()
Up, donc j'ai essayé avec un code plus que simplet, et il s'avère que juste avec ce code ci
import requests
from time import sleep
url = "http://www.jeuxvideo.com/forums/0-51-0-1-0-1-0-blabla-18-25-ans.htm"
r = requests.get(url)
sleep(5)
J'ai exactement la même erreur ![]()
Donc après petite "enquête", je me suis aperçu que requests sur mon vps ne fonctionne pas qu'avec le site "jeuxvideo.com" en effet lorsque je fais :
import requests
from time import sleep
url = 'http://codingbat.com/python'
url2 = 'http://www.jeuxvideo.com/forums/0-51-0-1-0-1-0-blabla-18-25-ans.htm'
r = requests.get(url)
print(r.status_code)
sleep(2)
s = requests.get(url2)
print(s.status_code)
la première réponse est 200 donc OK mais à la deuxième requête j'ai le fameux code d'erreur de mon premier post
Voilà, je pense que c'est tout. Si quelqu'un à une idée d'où ca pourrait venir.. ![]()
Sachant que sur ma machine locale, sous linux aussi ca fonctionne
Je sais que JVC a banni certaines IP. Sur mon serveur OVH, par exemple, ton code me génère une erreur aussi.
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 377, in _make_request
httplib_response = conn.getresponse(buffering=True)
TypeError: getresponse() got an unexpected keyword argument 'buffering'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 560, in urlopen
body=body, headers=headers)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 379, in _make_request
httplib_response = conn.getresponse()
File "/usr/lib/python3.5/http/client.py", line 1197, in getresponse
response.begin()
File "/usr/lib/python3.5/http/client.py", line 297, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.5/http/client.py", line 266, in _read_status
raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 376, in send
timeout=timeout
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 610, in urlopen
_stacktrace=sys.exc_info()[2])
File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 247, in increment
raise six.reraise(type(error), error, _stacktrace)
File "/usr/lib/python3/dist-packages/six.py", line 685, in reraise
raise value.with_traceback(tb)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 560, in urlopen
body=body, headers=headers)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 379, in _make_request
httplib_response = conn.getresponse()
File "/usr/lib/python3.5/http/client.py", line 1197, in getresponse
response.begin()
File "/usr/lib/python3.5/http/client.py", line 297, in begin
version, status, reason = self._read_status()
File "/usr/lib/python3.5/http/client.py", line 266, in _read_status
raise RemoteDisconnected("Remote end closed connection without"
requests.packages.urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3/dist-packages/requests/api.py", line 67, in get
return request('get', url, params=params, **kwargs)
File "/usr/lib/python3/dist-packages/requests/api.py", line 53, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 468, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python3/dist-packages/requests/sessions.py", line 576, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python3/dist-packages/requests/adapters.py", line 426, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))Ce n'est pas la même que toi, par contre.
Pourtant aussi bien en local qu'avec ma machine OVH, j'arrive à pinger ![]()

Bon pour ceux qui auraient le même souci, je confirme bien. Les machines d'OVH ne peuvent pas accéder à JVC, la plage d'ip d'OVH a du être banni car je peux très bien ping mais dès que je passe par le port 80 (via requests ou wget) je suis bloqué ![]()
Merci à ceux qui m'auront lu et/ou aidé ![]()