L oop и запись данных в файл csv в python - PullRequest
0 голосов
/ 09 марта 2020

Я пытаюсь очистить информацию о продукте с веб-сайта, используя список URL-адресов продукта, который хранится в файле CSV. Мое решение состоит в том, чтобы перебрать список URL-адресов и очистить информацию, а затем сохранить каждое поле информации о продукте в другой файл CSV. Вот моя первая попытка:

import time
from selenium import webdriver
import requests
from bs4 import BeautifulSoup
import  csv

path = r'C:\Users\\admin\\Desktop\\chromedriver_win32\\Chromedriver'
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('headless')
chrome_options.add_argument('window-size=1200x600')

browserdriver = webdriver.Chrome(executable_path = path,options=chrome_options)

with open('C:\\Users\\admin\\Desktop\\product_link.csv', mode='r') as csv_file:
    csv_reader = csv.DictReader(csv_file)
    line_count = 0
    for row in csv_reader:
        link= row['url']
        print(link)
        #print(link)
        browserdriver.get(link)
        browserdriver.implicitly_wait(10)
        title=browserdriver.find_element_by_xpath('//div[@class="finfo"]//div[1]//h2').text
        print(title)
        price=browserdriver.find_element_by_xpath('//*[@class="regular-price"]').text
        tomtatsp=browserdriver.find_elements_by_xpath('//p[@class="cinfo"]')
        tomtatsp_moi=""
        for p in tomtatsp:
            tomtatsp_moi=str(tomtatsp_moi)+str(p.text)+"\n"
        with open('C:\\Users\\admin\\Desktop\\luudulieu_sanpham.csv', mode='w', encoding="utf-8") as csv_file:
            fieldnames = ['ten_sp','gia_sp','motasp_ngan']
            writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
            writer.writeheader()
            writer.writerow({'ten_sp':str(title),'gia_sp': str(price),'motasp_ngan':str(tomtatsp_moi)})
        print("step 1 done")

print("done")

В результате я получил CSV-файл, содержащий только строку заголовка и информацию о последнем продукте, который взят из последнего URL-адреса входного CSV (product_link.csv). ). Я думаю, что-то не так, когда я записываю очищенные данные в файл CSV, но я не знаю, как решить. Пожалуйста, помогите мне отредактировать мой скрипт выше. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...