我尝试将https://icostats.com/首页中的数据提取并导出到.csv文件。到目前为止,这是我的代码:
import csv
from selenium import webdriver
def get_elements_by_xpath(driver, xpath):
return [entry.text for entry in driver.find_elements_by_xpath(xpath)]
url = ("https://icostats.com")
driver = webdriver.Firefox(executable_path=r'C:\Users\alph1\Scrapers\geckodriver.exe')
driver.get(url)
search_entries = [
("NAME", "//div[@class='tdName-0-73']"),
("DATE", "//div[@class='tdDate-0-74']"),
("CUR PRICE", "//div[@class='tdPrice-0-72'][1]"),
("ICO PRICE", "//div[@class='tdPrice-0-72'][0]"),
("24H ROI", "//div[@class='tdPrimary-0-75']")]
with open('textfile.csv', 'wb') as f_output:
csv_output = csv.writer(f_output)
# Write header
csv_output.writerow([name for name, xpath in search_entries])
entries = []
for name, xpath in search_entries:
entries.append(get_elements_by_xpath(driver, xpath))
csv_output.writerows(zip(*entries))
get_elements_by_xpath()
这是我得到的例外。
文件" C:/Users/alph1/PycharmProjects/PyQtPS/ICO2CSV.py",第28行,位于csv_output.writerow([name for name,xpath in search_entries]) TypeError:需要类似字节的对象,而不是' str'
我有一种感觉,我最终不应该这样称呼这种方法,但不知道我是怎么做的。
答案 0 :(得分:0)
我认为这是因为您已将文件作为二进制文件(open('textfile.csv', 'wb'
)打开。这意味着来自它的所有数据将以二进制形式读取,如字节。
要解决此问题,只需改为open('textfile.csv', 'w')
即可。