2017-06-13 16 views
0

私は、増加する数字ボタンをクリックしてbigkinds.or.krのランディングページをループさせようとしているPythonでSeleniumを使用してスクレープしようとしています。Python with Selenium:ページングの問題

次のページは、クロームインスペクタに応じて、以下のHTMLにあります。

<div class="newsPage"> 
    <div class="btmDelBtn"> 
          ...</div> 
<span> 
<a href="javascript:void(0);" class="current">1</a> 
<a href="javascript:void(0);" onclick="getSearchResultNew(2)">2</a> 
<a href="javascript:void(0);" onclick="getSearchResultNew(3)">3</a> 
<a href="javascript:void(0);" onclick="getSearchResultNew(4)">4</a> 
<a href="javascript:void(0);" onclick="getSearchResultNew(5)">5</a> 
<a href="javascript:void(0);" onclick="getSearchResultNew(6)">6</a> 
</span> 

私は、次のページをクリックすることで、クロールの成功を得ていないのです。私を助けてください。ここで が私のコードです:XPathので

url = "https://www.bigkinds.or.kr/main.do" 
browser.get(url) 

... 

currentPageElement = browser.find_element_by_xpath("//*[@id='content']/div/div/div[2]/div[7]/span/a[2]") 

print(currentPageElement) 

currentPageNumber = int(currentPageElement.text) 

print(currentPageNumber) 

、 "/スパン/ []" ページ番号です。このxpathのループを作るにはどうすればいいですか?

+0

1を試すことができます。int(currentPageElement.text )。 2.あなたのコード内のどこでも 'click()'メソッドを呼び出すことは決してありません。 –

+0

xpathでは、 "/ span/a [2]"はページ番号です。このxpathのループを作るにはどうすればいいですか? – wooah

答えて

0

てみたコードの下に使用する:

from selenium.common.exceptions import NoSuchElementException 

url = "https://www.bigkinds.or.kr/main.do" 
browser.get(url) 
page_count = 1 
while True: 
    # Increase page_count value on each iteration on +1 
    page_count += 1 
    # Do what you need to do on each page 
    # Code goes here 
    try: 
     # Clicking on "2" on pagination on first iteration, "3" on second... 
     browser.find_element_by_link_text(str(page_count)).click() 
    except NoSuchElementException: 
     # Stop loop if no more page available 
     break 

更新

それでもXPathで検索を使用する場合は、ラインにラインと

browser.find_element_by_link_text(str(page_count)).click() 

を交換する必要があるかもしれません

browser.find_element_by_xpath('//a[@onclick="getSearchResultNew(%s)"]' % page_count).click() 

...またはあなたがあなたの絶対的なXPath(ない最高のアイデア)を使用する場合、あなたは整数に要素のテキストを変換しようとしている

browser.find_element_by_xpath("//*[@id='content']/div/div/di‌​v[2]/div[7]/span/a[%s​]" % page_count).click() 
+0

ありがとうございます。私はxpathで増加する数を知りたい。 currentPageElement = browser.find_element_by_xpath( "// * [@ id = 'content']/div/div/div [2]/div [7]/span/a [** 2 **]」) – wooah

+0

更新された応答を確認する – Andersson

+0

どうもありがとう。できます!! ^^ – wooah

関連する問題