Запись данных в отдельные строки в CSV-файл в Python - PullRequest
0 голосов
/ 21 ноября 2018

Я хочу извлечь заголовки новостей с Hindustantimes.com.У меня есть следующий код, но я получаю данные в разных столбцах в одной строке.Я хочу, чтобы каждая новость была отдельной строкой.Кто-нибудь может мне помочь, пожалуйста.Заранее спасибо.Вот мой код:

import requests
import bs4
import csv
res=requests.get('https://www.hindustantimes.com')
soup=bs4.BeautifulSoup(res.text,'lxml')

x=[]
for i in soup.select('div.subhead4'):
    x.append(i.text)

for i in soup.select('div.bigstory-mid-h3'):
    x.append(i.text)

for i in x:
    print(i)

with open('newz.csv','w') as cF:
    wr = csv.writer(cF)
    wr.writerow(x)

Ответы [ 3 ]

0 голосов
/ 22 ноября 2018

writerow требуется итерация для записи:

writerow(['a', 'b', 'c'])
-> a,b,c

Кроме того, вам не нужно добавлять данные в список перед тем, как писать.

stories = soup.select('div.subhead4') + soup.select('div.bigstory-mid-h3')

with open('output.csv', 'w') as f:
    writer = csv.writer(f)
    for headline in stories:
        writer.writerow([headline.text.strip()])
0 голосов
/ 22 ноября 2018

это простой файл .csv, здесь без использования модуля csv

with open('newz.csv','w') as cF:
  for x in soup.select('.subhead4 a'):
    cF.write(x.text + '\n')
0 голосов
/ 22 ноября 2018
res = requests.get('https://www.hindustantimes.com')
soup = bs4.BeautifulSoup(res.text,'lxml')

x=[]
for i in soup.select('div.subhead4'):
    x.append(i.text.strip())

for i in soup.select('div.bigstory-mid-h3'):
    x.append(i.text.strip())


with open('newz.csv','w') as cF:
    wr = csv.writer(cF)
    for i in x:
        wr.writerow([i])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...