Как записать очищенные данные в CSV Fromat? - PullRequest
1 голос
/ 25 сентября 2019

Здравствуйте, я новичок в python и не понимаю, как преобразовать очищенные данные в формат csv.вот моя программа

import requests
import urllib.request

from bs4 import BeautifulSoup
import pandas



url = 'https://menupages.com/restaurants/ny-new-york/2'
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")


all_links = soup.find_all("a")
for link in all_links:
    print(link.get("href"))
    rows = soup.find_all('tr')
    print(rows[:10])

она удалила мне желаемый результат, и я хочу сохранить свой вывод в файле csv. Любой, пожалуйста, помогите

Ответы [ 2 ]

0 голосов
/ 25 сентября 2019

Вы можете сохранить список ваших удаленных ссылок в списке python, а затем, создав pandas DataFrame, создать файл csv.

import requests
import urllib.request

from bs4 import BeautifulSoup
import pandas


url = 'https://menupages.com/restaurants/ny-new-york/2'
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")


all_links = soup.find_all("a")
list_links = []
for link in all_links:
    list_links.append(link.get("href"))
    rows = soup.find_all('tr')

df = pandas.DataFrame({'WebLinks':list_links})
df.to_csv('/home/stackoverflow/links.csv', index=0)

Вывод файла

WebLinks
https://menupages.com/
https://menupages.com/
https://menupages.com/restaurants/cities
https://menupages.com/info/about-us
https://menupages.com/info/contact-us
0 голосов
/ 25 сентября 2019

Вы можете найти следующий пример в документации на python csv .

import csv
with open('eggs.csv', 'w', newline='') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=' ',
                            quotechar='|', quoting=csv.QUOTE_MINIMAL)
    spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
    spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])

Как видите, все, что вам нужно сделать, это преобразовать строку в список и затем передатьэто к writerow методу.

...