예제 #1
0
def ali_express_article(url) :
    els = []
    """
        Ali express possede deux formatage de ses articles selon la page
        pour certaines item d'autre list-item
        donc je verifie les deux condition si la premiere ne me retourne rien je passe au second
    """

    # articles = connexion.connexion(url,"div","class","item") etablir une connexion a la page de facon normale 
    articles = connexion.connexion(url,"div","class","item",True,True) # connexion anonyme et avec un navigateur
    
    if articles == []:
        # articles = connexion.connexion(url,"li","class","list-item") etablir une connexion a la page de facon normale 
        articles = connexion.connexion(url,"li","class","list-item",True,True) # connexion anonyme et avec un navigateur
    
    if articles is not []:
        for item in articles  :
            result = {}
            
            if item.find("img") :
                result["image"] = item.find("img")['src']
                result["libelle"] = item.find("img")['alt']
                
                if item.find("div",attrs={"class":"info"}).find("span",attrs={"class":"value"}):
                    result["prix"] = item.find("div",attrs={"class":"info"}).find("span",attrs={"class":"value"}).text
            
            print(result)
            els.append(result)

        return els
예제 #2
0
파일: ikea.py 프로젝트: daniel10027/scraper
def ikea_get_article(url):

    results = []
    liens = ikea_lien()

    if url in liens:
        links = connexion.connexion(url, "div", "class",
                                    "product-compact__spacer")
    elif ikea_get_key_uri(url) in liens:
        links = connexion.connexion(ikea_get_key_uri(url), "div", "class",
                                    "product-compact__spacer")
    else:
        raise Exception("L'url recherche n'existe pas")

    for link in links:
        obj = {}

        if link.find('img'):
            obj["image"] = link.find('img')['src']

        if link.find('span', attrs={'class': "product-compact__name"}):
            obj["nom"] = link.find('span',
                                   attrs={
                                       'class': "product-compact__name"
                                   }).text.strip()

        if link.find('span', attrs={'class': "product-compact__type"}):
            obj["type"] = link.find('span',
                                    attrs={
                                        'class': "product-compact__type"
                                    }).text.strip()

        if link.find('span', attrs={'class': "product-compact__description"}):
            obj["description"] = link.find('span',
                                           attrs={
                                               'class':
                                               "product-compact__description"
                                           }).text.strip()

        if link.find('span', attrs={'class': "product-compact__price"}):
            obj["prix"] = link.find('span',
                                    attrs={
                                        'class': "product-compact__price"
                                    }).text.strip()

        if link.find('span', attrs={'class': "product-compact__ratings"}):
            obj["avis"] = link.find('span',
                                    attrs={
                                        'class': "product-compact__ratings"
                                    }).text.strip()

        results.append(obj)

    return results
def createTable():
	#on commence par initialiser la connexion et le curseur
	conn = connexion()
	cursor = conn.cursor()

	#on drop les tables si elles existent déjà
	cursor.execute("DROP TABLE IF EXISTS activities")
	cursor.execute("DROP TABLE IF EXISTS installations")
	cursor.execute("DROP TABLE IF EXISTS equipements")

	#string creer_table_acti qui contient la requête sql de la table activities si elle n'existe pas avec ActCode qui correspond au code de l'activite et ActLib qui correspond au libélé de l'activité
	creer_table_acti = "CREATE TABLE IF NOT EXISTS activities (ActCode INT PRIMARY KEY NOT NULL, ActLib TEXT);"

	#string creer_table_equip qui contient la requête sql de la table equipements si elle n'existe pas avec InsNumeroInstall qui est le numero de l'installation, InsNom qui est le nom de l'installation et EquiId qui est le numéro unique de l'equipement
	creer_table_equip = "CREATE TABLE IF NOT EXISTS equipements(InsNumeroInstall INT PRIMARY KEY NOT NULL, InsNom TEXT, EquipId INT);"

	#string creer_table_install qui contient la requête sql de la table installations si elle n'existe pas avec des numInstall qui correspond au numéro d'installation, nomUsuelInstall qui correspond au nom usuel de l'installation,  adresse, code_postal, ville, latitude, longitude
	creer_table_install = "CREATE TABLE IF NOT EXISTS installations(numInstall INT PRIMARY KEY NOT NULL, nomUsuelInstall TEXT, adresse TEXT, code_postal INT, ville TEXT, latitude FLOAT, longitude FLOAT);"

	#on envoie les requetes à la base de donnée
	cursor.execute(creer_table_acti)

	cursor.execute(creer_table_equip)

	cursor.execute(creer_table_install)

	#on sauvegarde les changements et on ferme la connexion
	conn.commit()
	conn.close()
예제 #4
0
파일: ikea.py 프로젝트: daniel10027/scraper
def ikea_main():
    result = []
    items = connexion.connexion('https://www.ikea.com/fr/fr/', 'li', "class",
                                "desktop-menu__item")
    for item in items:
        obj = {}
        obj["titre"] = item.find('span',
                                 attrs={
                                     'class': 'desktop-menu__title'
                                 }).text
        obj["souscat"] = []
        if item.find('ul', attrs={'class': 'desktop-menu__level1'}):
            sousCat = item.findAll(
                'li', attrs={'class': 'desktop-menu__level1__item'})
            for cat in sousCat:
                if cat.find('ul', attrs={"class": "desktop-menu__level2"}):
                    links = cat.findAll('a')
                    for link in links:
                        l = {}
                        l["nom"] = link.text
                        l["lien"] = link['href']
                        obj["souscat"].append(l)
                        result.append(obj)
                else:
                    continue

    return result
def insertEquipement(equipement):
	conn = connexion()
	cursor = conn.cursor(prepared=True)
	insertQuery = "INSERT INTO equipements(InsNumeroInstall, InsNom, EquipId) VALUES (?, ?, ?)"
	cursor.execute(insertQuery,(equipement.num, equipement.nom, equipement.id))
	conn.commit()
	conn.close()
예제 #6
0
def get_website_data(url):
    results = []
    sections = connexion.connexion(url, 'li', "class", "octopus-pc-item")

    for section in sections:
        results.append(section)

    return results
def insertInstallation(installation):
	conn = connexion()
	cursor = conn.cursor(prepared=True)
	
	insertQuery = "INSERT INTO installations(numInstall, nomUsuelInstall, adresse, code_postal, ville, latitude, longitude) VALUES (?, ?, ?, ?, ?, ?, ?)"
	cursor.execute(insertQuery, (installation.numInstall, installation.nomUsuelInstall, installation.adresse, installation.code_postal, installation.ville, installation.latitude, installation.longitude))
	conn.commit()
	conn.close()
예제 #8
0
def get_website_categorie(url):
    results = []
    categories = connexion.connexion(url, 'div', "class", "popover-grouping")
    for categorie in categories:
        result = {
            "nom":
            categorie.find('h2', attrs={
                "class": "popover-category-name"
            }).text,
            "sousCategories": [{
                sousCat.text: sousCat['href']
            } for sousCat in categorie.findAll('a', attrs={"class": "nav_a"})]
        }
        results.append(result)

    return results
def allActivities():
	liste_activities = [] #On créer une liste vide

	db, cursor = connexion()

	cursor.execute("SELECT * FROM activities") #On lance la requête pour récupérer les données de activities
	res = cursor.fetchall() #On met les données dans une variable

	for row in res: #On parcours notre variable 
		liste_activities.append(Activity(row[0], row[1])) #On ajoute les données dans notre liste_activities
	print(liste_activities)
	db.commit()
	db.close()

	#activity = json.dumps(liste_activities) #On met la liste_activities en format JSON
	#print(activity)

	return liste_activities #On retourne notre liste
def insertActivity(activity):
	#on insctancie d'abord la connexion à la base de donnée
	conn = connexion()

	#on instancie le cursor en lui indiquant que les requêtes que nous allons lui envoyer seront de types "prepared"
	cursor = conn.cursor(prepared=True)

	#premiere partie de la requête
	insertQuery = "INSERT INTO activities(ActCode, ActLib) VALUES (?, ?)"

	#Les valeurs que l'ont insère
	cursor.execute(insertQuery,(activity._ActCode, activity._ActLib))


			#test: insertQuery = "INSERT INTO activities(ActCode, ActLib) VALUES (?, ?)"
			#cursor.execute(insertQuery,(111111,"Nicolas"))
			#attendu: un ligne actCode = 111111 et actLib = Nicolas
	
	#sauvegarde et fereture de la connexion
	conn.commit()
	conn.close()
예제 #11
0
#all_account[1] = "account_2"
#all_account[2] = "account_3"
#all_account[3] = "account_4"
#
### DEFINE 1

name_av = connexion.multi_errors_unfo(sys.argv)
password = sys.argv[2]

print("...:::UNFOLLOWING:::...")
## init driver
driver = connexion.init()


##connexion to twitter with name and password
connexion.connexion(driver, name_av, password)

##get number of following and followers
nb_followers = get_informations.get_nb_followers(driver)
nb_following = get_informations.get_nb_following(driver)


## ERROR FAIL NOT FOUND 4:43AM
if (nb_followers == "1" and nb_following != "1"):
	nb_followers = nb_following
	nb_following = "1"


##ERRORS IF WE HAVE 0 FOLLOWERS
if nb_following == "1" and nb_followers == "1":
	print("Ratio is not big enough ! We cannot unfollow now, sorry.")
예제 #12
0
def ali_express_init():
    url = "https://fr.aliexpress.com"
    categories = connexion.connexion(url,"dl","class","cl-item")
    return categories