2017-06-25 3 views
-1

Ich bin neu in Python. Ich startete Web-Browser automatisch Selen-Paket und öffnete E-Commerce-Website (wie Amazon) und suchte meine Produkte in der Suchleiste. Das habe ich erfolgreich gemacht. Aber jetzt, bei der Durchführung dieser Suche, möchte ich mit Python den Rang meines Produkts im Suchergebnis ermitteln. (Ex. Ist es 5./6./50.) Im Suchergebnis und speichern Sie dann diesen Rang in CSV. Ich habe viel gelernt, aber ich kann den Code nicht finden. Kann mir bitte jemand helfen?zählen Rang des Produkts in den Suchergebnissen auf der Website aufgeführt und erhalten Rang in Excel mit Python

Muster der Antwort: Betrachten Sie mein Handy Produkt Firmennamen Yu yu yureka öffnen Flipkart ist> Typ 'mobile' und Hit Suchtaste> Sie werden sehen, Titel, Bild, Beschreibung von motorola nächsten yu yu yureka. Also hier möchte ich den Rang meiner Produkte. Wenn es verschiedene Produkte hat und an der 6. und 5. Position kommt, möchte ich den Produktnamen und den Rang als 6 und 5 beide abrufen.

Hier ist mein Code

from selenium import webdriver 

driver = webdriver.Chrome("C:\\All\\chromedriver_win32\\chromedriver.exe") 
driver.get('https://www.flipkart.com/') 

driver.set_page_load_timeout(30) 


driver.find_element_by_class_name("LM6RPg").send_keys("mobile") 
driver.find_element_by_class_name("vh79eN").click() 

Jetzt möchte ich die Suchergebnisdaten sortieren Rang von Yu Yu Yureka bekommen (beide Produkte) in Suchergebnis? Es ist 5. oder 6. dort Vielen Dank im Voraus!

+0

Es würde helfen, wenn Sie eine Probe der Antwort zeigten. Und angenommen, Sie möchten nur, dass die Ausgabe eine CSV-Zeichenfolge ist? –

+0

Ich habe es hinzugefügt. Bitte schau es dir jetzt an. Hoffe es ist klar. Ich danke dir sehr! – Analyst

+1

Klingt so, als müssten Sie mit einem Modul wie "selen" beginnen, um sich mit der Website zu verbinden und in den beschriebenen Suchschritten zu navigieren. Danach wird das Ranking nicht sehr schwierig sein. Bitte geben Sie [minimales, vollständiges, überprüfbares Beispiel] (https://stackoverflow.com/help/mcve) für zusätzliche Hilfe an. –

Antwort

0

Sie müssen die Elemente aus der Liste der Elemente des Klassennamens _2_KrJI auswählen und ihr Textattribut abrufen.

element_list = driver.find_elements_by_class_name("_2_KrJI") 
print(element_list[4].text) 
print(element_list[5],text) 
+0

Dies wird mir Produkt-Ranking geben. Ich bin daran interessiert herauszufinden ... ob mein Produkt auf der ersten oder zweiten Seite erscheint? wenn es auf der ersten Seite ist, dann erscheint es auf der 5. Position oder der 7. Position Betrachten Sie die erste Seite hat 10 Produkte aufgelistet, wenn es auf der zweiten Seite in der zweiten Position aufgeführt ist, dann sollte es die Position 10 + 2 = 12 geben – Analyst

+0

Mehrere Browser unterstützen den Schlüssel , um ein Debug-Fenster zu öffnen. In Debug können Sie das Browserfenster untersuchen, um die Elemente zu identifizieren, an denen Sie interessiert sind, und dann eine ähnliche Strategie wie in Antwort 1 verwenden, um Ihre Listenelemente mit einer oder mehreren Klassen eines Elements usw. zu durchlaufen Sehen Sie sich ihr Textattribut an, um zu sehen, ob sie den gewünschten Wert enthalten. –

+0

Ja. Ich habe das überprüft, aber es gibt kein Attribut wie das Sortieren der Daten. Ich denke, ich muss die Divs zwischen Vorkommnissen zählen. Aber ich verstehe nicht, wie ich das machen soll. Ist das die richtige Herangehensweise oder kann da noch etwas leichter sein? – Analyst