Загрузка очищенных данных в список - PullRequest
0 голосов
/ 18 сентября 2018

Мне удалось успешно очистить некоторый текст с веб-сайта, и теперь я пытаюсь загрузить текст в список, чтобы впоследствии я мог преобразовать его в Pandas DataFrame.

Сайт предоставил данные вформат scsv, чтобы его можно было быстро получить.

Ниже приведен мой код:

import requests
from bs4 import BeautifulSoup

#Specify the url:url
url = "http://rotoguru1.com/cgi-bin/fyday.pl?week=1&year=2017&game=dk&scsv=1"

# Packages the request, send the request and catch the response: r
r = requests.get(url)

#Extract the response:html_doc
html_doc = r.text


soup = BeautifulSoup(html_doc,"html.parser")

#Find the tags associated with the data you need, in this case
# it's the "pre" tags


for data in soup.find_all("pre"):
    print(data.text)

Пример вывода

Неделя; Год; GID; Имя;Pos; Team; h / a; Oppt; DK points; DK заработная плата 1; 2017; 1254; Smith, Alex; QB; kan; a; nwe; 34.02; 5400 1; 2017; 1344; Bradford, Sam; QB; min;ч; ни; 28,54; 5900

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

используйте функцию open для записи файла csv

import requests
from bs4 import BeautifulSoup
url = "http://rotoguru1.com/cgi-bin/fyday.pl?week=1&year=2017&game=dk&scsv=1"
r = requests.get(url)
html_doc = r.content
soup = BeautifulSoup(html_doc,"html.parser")
file = open(“data.csv”,”w”)
for data in soup.find("pre").text.split('\n'):
    file.write(data.replace(';',','))
file.close()
0 голосов
/ 18 сентября 2018

Вот одна вещь, которую вы можете сделать, хотя возможно, что кто-то, кто знает панд лучше, чем я, может предложить что-то лучшее.

У вас есть r.text.Поместите это в удобный текстовый файл, позвольте мне назвать его temp.csv.Теперь вы можете использовать метод pandas read_csv для переноса этих данных в фрейм данных.

>>> df = pandas.read_csv('temp.csv', sep=';')

Приложение:

Предположим, что results было похоже на это.

>>> results = [['a', 'b', 'c'], [1,2,3], [4,5,6]]

Тогда вы могли бы поместить их в фрейм данных таким образом.

>>> df = pandas.DataFrame(results[1:], columns=results[0])
>>> df
   a  b  c
0  1  2  3
1  4  5  6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...