Application python relié à phpMyAdmin

Akael

New Member
#1
Bonjour,

Je vous contacte car j'ai créé une application python qui me sert à scrap de la donnée afin de l'envoyer dans ma Database.
Seulement, je souhaite vérifier que ma donnée n'est pas déjà présente dans phpMyAdmin afin d'éviter les doublons.

Pour faire cela, je fais un simple SELECT avec un WHERE afin de comparer les éléments:
Python:
import os
import sys
import requests
import json
from bs4 import BeautifulSoup
import random
import re
import mysql.connector

mydb = mysql.connector.connect(host='coucou',user='coucou moi',password='petit voleur va', database='je te vois !')

USER_AGENTS = [
    ('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'),
    ('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.110 Safari/537.36'),  # chrome
    ('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36'),  # chrome
    ('Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0')  # firefox
]
ind = random.randint(0, len(USER_AGENTS) - 1)
headers = {'User-Agent': USER_AGENTS[ind]}


sys.path.insert(0, os.path.dirname(__file__))


def app(environ, start_response):
    start_response('200 OK',[('Content-Type','text/plaint')])
    message ="it's work !\n"
   
    allArticles = []

    mycursor = mydb.cursor()
    for article in allArticles:
       
        sql = """SELECT * FROM actualites WHERE lien = %s"""
        test = article['link']
        mycursor.execute(sql, (test,))
        record = mycursor.fetchall()
   
    response = '\n'.join([message,article['link']])

    return [response.encode()]
Le problème, c'est qu'une fois ce code exécuté, j'ai l'erreur suivante: "Incomplete response received from application"

Après vérification, le problème vient du contenu de article['link'] car un simple "coucou" fonctionne parfaitement.
En voulant afficher le contenu avec le return, j'obtiens mon lien avec des caractères de ce genre: .php?threads/✦-l’hebdo-du-cynews-✦-.
Je me dis que cela vient de l'encode du return et ne devrait pas impacter ma donnée au moment du SELECT.

Une idée sur l'origine du soucis ?
Je suppose que cela vient de l'encodage des données, mais impossible à le modifier :/

Cordialement,
Akaël
 

Akael

New Member
#2
Résolu, j'ai ajouté ces lignes:
Python:
mycursor.execute('SET NAMES utf8mb4;')
mycursor.execute('SET CHARACTER SET utf8mb4;')
mycursor.execute('SET character_set_connection=utf8mb4;')
En espérant que cela puisse aider d'autres personnes !

Cordialement,
Akaël
 
Haut