экспорт извлеченных данных в CSV с определенным столбцом - PullRequest
1 голос
/ 04 апреля 2019

Мой код в настоящее время печатает результат на экране команд.

желаемый результат (см. Прикрепленный скриншот): запишите окончательный результат в файл CSV в столбце 'a2' и выведите sku # в столбец 'a1' sku # всегда будет текстом, который идет после 5 '/' в URL

вот код

from bs4 import BeautifulSoup
import urllib.request
import csv
def get_bullets(url):
    page = urllib.request.urlopen(url)
    soup = BeautifulSoup(page,'lxml')
    content = soup.find('div', class_='js-productHighlights product-highlights c28 fs14 js-close')
    bullets = content.find_all('li', class_='top-section-list-item')
    for bullet in bullets:
     print(bullet.string)

get_bullets('https://www.bhphotovideo.com/c/product/1225875-REG/canon_1263c004_eos_80d_dslr_camera.html')

Желаемый результат:

enter image description here

Спасибо!

1 Ответ

1 голос
/ 04 апреля 2019
from bs4 import BeautifulSoup
import urllib.request
import pandas as pd


def get_bullets(url):
    sku = url.split('/')[5]
    page = urllib.request.urlopen(url)
    soup = BeautifulSoup(page,'lxml')
    content = soup.find('div', class_='js-productHighlights product-highlights c28 fs14 js-close')
    bullets = content.find_all('li', class_='top-section-list-item')

    bullets_text = '\n'.join([ bullet.text for bullet in bullets ])

    temp_df = pd.DataFrame([[sku, bullets_text]], columns = ['sku','bullets'])
    temp_df.to_csv('path/filename.csv', index=False)


get_bullets('https://www.bhphotovideo.com/c/product/1225875-REG/canon_1263c004_eos_80d_dslr_camera.html')
...