2017-07-03 11 views
0

このウェブサイトの既存の行をすべて反復処理してスクレイプするにはどうすればよいですか:https://icostats.com/ウェブサイトのテーブル行を繰​​り返してデータをフェッチする

以下のようなコードで実行できますか?

rows = [] 
for row in rows(0, 20): 
    row += 1 
    get_css_sel("#app > div > div.container-0-16 > div.table-0-20 > div.tbody-0-21 > div:nth-child({})").format(row) 

全コード:

from selenium import webdriver 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.support.ui import WebDriverWait as wait 

def get_css_sel(selector): 
    posts = browser.find_elements_by_css_selector(selector) 
    for post in posts: 
     print(post.text) 

browser = webdriver.Chrome(executable_path=r'C:\Users\alph1\Scrapers\chromedriver.exe') 
browser.get("https://icostats.com") 
wait(browser, 40).until(EC.presence_of_element_located((By.CSS_SELECTOR, "#app > div > div.container-0-16 > div.table-0-20 > div.tbody-0-21 > div:nth-child(2) > div:nth-child(8)"))) 

browser.execute_script(''' 
    var element = document.getElementsByClassName("buyNow-0-81"), index; 
    for (index = element.length - 1; index >= 0; index--) { 
    element[index].parentNode.removeChild(element[index]); 
    } 
''') 

get_css_sel("#app > div > div.container-0-16 > div.table-0-20 > div.tableheader-0-50")    #fetch header of table 

rows = [] 
for row in rows(0, 20): 
    row += 1 
    get_css_sel("#app > div > div.container-0-16 > div.table-0-20 > div.tbody-0-21 > div:nth-child({})").format(row) 

答えて

1

がループを忘れて、ただの操作を行います。

get_css_sel("#app > div > div.container-0-16 > div.table-0-20 > div.tbody-0-21 > div") 
+0

うわー。私は完全にそのマークを逃した。 Pythonはとても美しいです。 – tklein

+0

私が各get_css_sel()をcsvファイルの行に書き込むと、ループが必要でしょうか? – tklein

+0

@tkleinええ、あなたは依然として ''行内の行 'のために' '投稿に投稿する' 'が必要です。 –

関連する問題