2016-03-23 18 views
-1

Ich habe eine Textliste von URLs namens all_urls.txt. Jede URL in der Textdatei befindet sich in einer einzelnen Zeile. Ich möchte diese Liste Selen (Python) übergeben, um bestimmte Daten zu extrahieren. Ich kann dies erreichen, indem ich die URLs einzeln benutze, aber das ist nicht effizient. Mein Code derzeit wie folgt aussieht: -Python Selen verwenden Liste der URLs

profile = FirefoxProfile('/home/test/.mozilla/firefox/mfgrtrtr.Default3') 
browser = webdriver.Firefox(firefox_profile=profile) 
browser.maximize_window() 
# get website 
browser.get('https://www.some-website.com/') 
# get current url 
print browser.current_url 
# get name & get phone number 
name = browser.find_element_by_class_name("name") 
print name.text 
phone = browser.find_element_by_class_name("phone") 
print phone.text 

Wie kann ich die Liste übergeben browser.get und von jedem URL-Namen und Telefon zu extrahieren. Vielen Dank im Voraus für Ihre Hilfe, ich bin neu bei Python, aber genieße die Herausforderung.

+0

Wissen Sie, wie eine Datei zu öffnen und eine for-Schleife verwenden? 'mit open (yourfile) als f: für URL in map (str.rstrip, f) ...' –

Antwort

1

Sie benötigen wahrscheinlich eine for Schleife, die über eine Liste iterieren kann. Der Code sollte wie folgt aussehen:

profile = FirefoxProfile('/home/test/.mozilla/firefox/mfgrtrtr.Default3') 
browser = webdriver.Firefox(firefox_profile=profile) 
browser.maximize_window() 
with open("your_file_name") as in_file: 
    for url in in_file: 
     # get website 
     browser.get(url.strip()) 
     # get current url 
     print browser.current_url 
     # get name & get phone number 
     name = browser.find_element_by_class_name("name") 
     print name.text 
     phone = browser.find_element_by_class_name("phone") 
     print phone.text 

Die .strip Methodenaufruf auf die URL einfach sichergestellt, dass es keine führende oder nachfolgende Leerzeichen hat - Zeilen zu lesen in einer Datei enthalten normalerweise das hintere Newline-Zeichen.

1

Öffnen Sie die Datei:

my_file = open("all_urls.txt", "r") 

Iterate es Throught und verwenden Sie die get Funktion auf jeder url:

for url in my_file: 
    browser.get(url) 
    print ... 
    print ...