【发布时间】:2018-02-04 17:41:27
【问题描述】:
我从一个网站上抓取了三个列表,并将它们打印到 Selenium 中。那些是团队,赔率和 Href。但是,这些列表不会正确写入 CSV 文件。我希望将每个列表放入第 1、2 和 3 列。有什么帮助吗?
我倾向于得到很多:<selenium.webdriver.remote.webelement.WebElement (session="211dc26889dedb4d1d5db5f355c9b225", element="0.936313100855265-9")>
我的数据如下所示:https://ibb.co/iW6rbk
我想要它的样子:https://ibb.co/fhna2Q
我相信这是因为它编写了 Web 元素而不是我真正想要的。关于如何调整我的代码以便它实际写入我想要的内容(抓取的值)的任何建议?
谢谢
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
import csv
import requests
import time
from selenium import webdriver
driver = webdriver.Chrome(executable_path=r'C:\Brother\chromedriver.exe')
driver.set_window_size(1024, 600)
driver.maximize_window()
driver.get('https://www.bookmaker.com.au/sports/soccer/37854435-football-australia-australian-npl-2-new-south-wales/')
SCROLL_PAUSE_TIME = 0.5
# Get scroll height
last_height = driver.execute_script("return document.body.scrollHeight")
while True:
# Scroll down to bottom
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
# Wait to load page
time.sleep(SCROLL_PAUSE_TIME)
# Calculate new scroll height and compare with last scroll height
new_height = driver.execute_script("return document.body.scrollHeight")
if new_height == last_height:
break
last_height = new_height
time.sleep( 5 )
#link
elems = driver.find_elements_by_css_selector("h3 a[Href*='/sports/soccer']")
for elem in elems:
print(elem.get_attribute("href"))
#TEAM
langs1 = driver.find_elements_by_css_selector(".row:nth-child(1) td:nth-child(1)")
for lang in langs1:
print (lang.text)
time.sleep( 10)
#ODDS
langs = driver.find_elements_by_css_selector(".row:nth-child(1) span")
for lang in langs:
print (lang.text)
time.sleep( 10 )
import csv
with open ('I AM HERE12345.csv','w') as file:
writer=csv.writer(file)
for row in langs, langs1, elems:
writer.writerow(row)
【问题讨论】:
标签: python python-3.x selenium selenium-webdriver