Selenium - Seleniumwire profil qui plante + récupérer fichier json.
Bonjour à tous,
Quand j'utilise Selenium après un certain temps, j'ai mon profil qui plante. (peut-être quand je dois fermer manuellement...)
Je n'arrive plus à utiliser le navigateur manuellement. Il m'indique "La connexion a été refusée par le serveur proxy".
Pour repartir sur de bonnes bases, la seule chose que je peux faire est de supprimer et de refaire un nouveau profil.
Est-ce un problème dans mon code ?
Question 2:
J'aimerais récupérer les frais de port sur aliexpress depuis un fichier json.
Manuellement, cela fonctionne et je pointe sur la bonne URL qui change à chaque demande (c'est généré depuis l'api).
Si j'ouvre la page depuis les paramètres réseau, c'est ok.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| from selenium.webdriver.firefox.options import Options
from selenium.webdriver.firefox.service import Service
from seleniumwire import webdriver
import time
from info import FirefoxCookies # Dasn ce cas, sert uniquement pour le profil
from selenium.webdriver.common.by import By
fc = FirefoxCookies()
fc.nom_profil_ff = 'Selenium_ali'
# # # ------------ Lancement Selenium -------------- # # #
options = Options()
options.add_argument("-profile")
options.add_argument((fc.rep_profils_ff + fc.nom_profil_ff).replace('\\', '\\\\')) # Chemin profile
options.binary_location = r'C:\Program Files\Mozilla Firefox\firefox.exe'
# Réduire la consommation de bande passante et augmentez la vitesse en désactivant ces éléments.
options.set_preference('permissions.default.image', 2) # Pas d'image / Réactiver : 1
options.set_preference('permissions.default.stylesheet', 2) # Pas de CSS / Réactiver : 1 (peut-être pas fonctionnel)
options.set_preference('dom.ipc.plugins.enabled.libflashplayer.so', 'false') # Pas de flash
s = Service('E:/Professionnel/Python/prog/Selenium/geckodriver.exe')
driver = webdriver.Firefox(service=s, options=options)
driver.implicitly_wait(5)
driver.get("https://www.aliexpress.com/item/32819231915.html")
# Recupérer le bouton pour les frais d'expéditions
driver.find_element(By.CLASS_NAME, "product-dynamic-shipping-moreOptions").click()
time.sleep(3)
url_f = ''
for requete in driver.requests:
if requete.url.startswith('https://acs.aliexpress.com/h5/mtop.global.expression.dynamic.component.queryoptionforitem/1.0/'):
url_f = requete.url
time.sleep(5)
print(url_f)
driver.get(url_f)
print(driver.page_source)
driver.quit() |
Merci pour votre aide,
JayceOne