2016-03-23 6 views
-1

all_urls.txtという名前のURLのテキストリストがあります。テキストファイルの各URLは1行にあります。特定のデータを抽出するために、このリストをセレニウム(python)に渡したいと思います。私はこれをURLのものを使って達成することができますが、これは効率的ではありません。現在のコードは次のようになります。 -Python SeleniumがURLのリストを使用

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 

リストをbrowser.getに渡して、各URLから名前と電話を抽出するにはどうすればよいですか。事前にお手伝いいただきありがとうございます。私はPythonには初めてですが、挑戦を楽しんでいます。

+0

ファイルを開いて、forループを使用する方法を知っていますか? 'であなたのファイルを開く(yourfile)f:マップのURL(str.rstrip、f)...' –

答えて

1

おそらくforループが必要です。これはリストを反復することができます。あなたのコードは次のようになります。

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 

URLに.stripメソッド呼び出しは、単にそれが何の先頭または末尾の空白を持っていないことを保証します - 行が正常に改行文字が含まれるファイルから読み込みます。

1

ファイルを開く:

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

反復がそれをthroughtし、各URLにget機能を使用します。

for url in my_file: 
    browser.get(url) 
    print ... 
    print ... 
関連する問題