2017-05-10 10 views
0

私は現在、Webサイトから情報を取得するためのPythonセレニウムスクリプトを作成しています。私は正常に100 +のページ1から私が望む形式でデータを取得しました。残念ながら、プログラムを実行して、進行中のページからすべての情報を収集することはできません。私はウェブサイトのターゲット= https://www.freshfields.com/en-gb/contacts/find-a-lawyer/スクリプトを見ると、「次へ」ボタンが以下のようにコンパイルされていることがわかります。/div [@ class = 'mmargin-bottom-30']/div [@ id = 'メインコンテンツ']/div [@ class = 't6a-grid']/div [/ul [@ class = 'col-md-12 padding-left-0 padding-right-20']/ul [@ class = 'pagination']/li [11]/a 私が書いたスクリプトの一部は以下の通りです。スクリプト内の「次のページ要素に移動します」は、現在動作していない領域です。Python Selenium - 次のページをクリックしてください

デフget_links(ドライバ、ターゲット): #これはフレッシュフィールズのウェブサイト

driver.get(target) 
# get links associated to profiles on result page 
list_links = [] 
while True: 
    list_ppl_link = driver.find_elements_by_xpath('//div[@class=" mix item col-xs-6 col-sm-4"]')  
    for item in list_ppl_link: 
     emp_name_obj = item.find_element_by_tag_name('a') 
     emp_name = emp_name_obj.text 
     emp_link = emp_name_obj.get_attribute('href') 
     list_links.append({'emp_name':emp_name, 'emp_link':emp_link}) 
    try: 
     # this is navigate to next page 
     driver.find_element_by_xpath('//ul[@class="pagination"]/li').click() 
     time.sleep(1) 
    except NoSuchElementException: 
     break 
return list_links 

に存在するすべてのプロファイルに関連付けるリンクを収集することですどのように私はページをループすることができます誰かが私を理解するのに役立つ可能性があります1,960レコードを集めますか?

感謝

クリス

+0

あなたの質問のフォーマットに少しより多くの仕事は、それははっきりしていないbeacuase。私は何が "太字イタリック"であるか分かりません。 –

+0

こんにちは。いい視点ね。私は、スクリプト内の "次のページ要素に移動しています"という作業領域を特定するために質問を更新しました。ありがとう。 –

答えて

0

以下のようなものを使用してみてください:

list_ppl_link = driver.find_elements_by_xpath('//div[@class=" mix item col-xs-6 col-sm-4"]') 
    i=1  
    for item in list_ppl_link: 
     i=i+1 
     emp_name_obj = item.find_element_by_tag_name('a') 
     emp_name = emp_name_obj.text 
     emp_link = emp_name_obj.get_attribute('href') 
     list_links.append({'emp_name':emp_name, 'emp_link':emp_link}) 
    try: 
     # this is navigate to next page 
     driver.find_element_by_xpath('//ul[@class="pagination"]//li/a[contains(text(),"' + str(i) +'")').click() 
     time.sleep(1) 
    except NoSuchElementException: 
     break 
+0

私に戻ってくれてありがとう。私はそのメソッドを試して、次のエラーメッセージが表示されます。 "str 'と' int 'オブジェクトを連結できません。どうかアドバイスできますか? –

+0

大丈夫ですので、あなたの 'i'を 'str(i)'を使って文字列に変換しなければなりません;私はコードを更新しました。 – kushal

+0

あなたの助けを借りてありがとう –

関連する問題