from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time
import csv
driver = webdriver.Chrome('/Users/myname/Desktop/web_crawling/chromedriver')
driver.get('https://www.naver.com')
time.sleep(2)
driver.find_element(by=By.CSS_SELECTOR, value='a.nav.shop').click()
search = driver.find_element(by=By.CSS_SELECTOR,value='._searchInput_search_input_QXUFf')
search.click()
search.send_keys("ìì´í° 13")
search.send_keys(Keys.ENTER)
before_h = driver.execute_script("return window.scrollY")
while True:
driver.find_element(by=By.CSS_SELECTOR, value='body').send_keys(Keys.END)
time.sleep(1)
after_h = driver.execute_script("return window.scrollY")
if after_h == before_h:
break
before_h = after_h
#create csv file
f = open(r"/Users/yungijeong/Desktop/web_crawling/data.csv", 'w', encoding='UTF8')
csvWriter = csv.writer(f)
items = driver.find_elements(by=By.CSS_SELECTOR, value=".basicList_info_area__17Xyo")
for item in items:
names = item.find_elements(by=By.CSS_SELECTOR, value=".basicList_link__1MaTN")
for name in names:
print(name.text)
try:
prices = item.find_elements(by=By.CSS_SELECTOR, value=".price_num__2WUXn")
for price in prices:
print(price.text)
except:
print("í매ì¤ë¨")
links = item.find_elements(by=By.CSS_SELECTOR, value=".basicList_title__3P9Q7 > a")
for link in links:
print(link.get_attribute('href'))
print(name, price, link)
#adding inside the csv files
csvWriter.writerow([name, price, link])
f.close()
在这里,我试图在一个古兰经购物网站上搜集iPhone的详细信息和价格。我编写了自己的代码,这样webdriver就可以自动进入该网站并获取所有详细信息(例如产品的价格和链接)。最后,它应该制作一个csv文件,并将所有刮取的数据粘贴到其中。
代码运行得很好,但当我将其导出到csv文件时,它看起来是这样的:
The result in csv
内容似乎没有正确导出。。每个代码看起来都像HTML代码。。。你们有没有人有同样的问题?在终端中,看起来webdrvier正确区分了数据,但结果是,它以一种奇怪的方式导出了数据。如果你有同样的问题,请分享!!