다음과 같은 selenium-webdriver에 대한 코드가 있습니다.
base_url = 'http://wsprnet.org/drupal/wsprnet/spotquery'
driver = webdriver.Chrome()
driver.get(base_url)
그리고 로그인과 비밀번호를 입력하면 다음 코드 다음에 페이지가 업데이트됩니다.
btn_elem_upd = driver.find_element_by_id('edit-submit').click()
다음으로 업데이트 된 페이지를 다음과 같이 다른 기능으로 전송해야합니다.
url = "Here need transfer the new updated page"
res = requests.get(url)
doc = lxml.html.fromstring(res.text)
어떻게 할 수 있습니까? 옵션은 무엇입니까? 업데이트하면 이렇게 작성하면 코드가 작동합니다.
new_source = 'http://wsprnet.org/drupal/wsprnet/spots'
res = requests.get(new_source)
doc = lxml.html.fromstring(res.text)
cols = []
cols.append(doc.xpath('//table/tr[1]/node()/text()')[0])
for item in doc.xpath('//table/tr/th'):
typ = str(type(item.getnext()))
if not 'NoneType' in typ:
cols.append(item.getnext().text)
inf = []
for item in doc.xpath('//table//tr//td'):
inf.append(item.text.replace('\\xa02', '').strip())
rows = [inf[x:x+len(cols)] for x in range(0, len(inf), len(cols))]
with open("output.csv", "w", newline='') as f:
writer = csv.writer(f)
writer.writerow(cols)
for l in rows:
writer.writerow(l)
다시 작성하면 :
doc = lxml.html.fromstring(driver.page_source)
cols = []
cols.append(doc.xpath('//table/tr[1]/node()/text()')[0])
코드가 오류와 함께 작동하지 않습니다.
cols.append(doc.xpath('//table/tr[1]/node()/text()')[0])
IndexError: list index out of range
토론을 기반으로 pandas 라이브러리를 사용 하여 테이블 정보를 읽고 csv 파일 로로드 할 수 있습니다 .
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium import webdriver
import pandas as pd
driver = webdriver.Chrome()
driver.get("http://wsprnet.org/drupal/wsprnet/spotquery")
login = driver.find_element_by_id('edit-name')
password = driver.find_element_by_id('edit-pass')
btn_elem_log = driver.find_element_by_id('edit-submit--2')
login.send_keys('username')
password.send_keys('password')
btn_elem_log.click()
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.ID,"edit-call"))).send_keys("searchval")
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.ID,"edit-excludespecial"))).click()
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.ID,"edit-submit"))).click()
WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.TAG_NAME,"table")))
page=driver.page_source
df=pd.read_html(page)
df[0].to_csv("csvfile.csv",index=False)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다