код ниже данных передряги со следующей страницы:.. "http://www.gbgb.org.uk/resultsMeeting.aspx?id=136005Scrape HTML в CSV файл
Он царапает все поля Релевента и выводит их на экран, однако я хочу попробовать и распечатать данные в табличная форма в файл csv для экспорта в электронную таблицу или базу данных.
В исходном HTML-тексте оценка, расстояние и призовые места по треку, дате, дате времени (время гонки) взяты из div-класса «resultsBlockheader», и на веб-странице формируется верхняя область карты гонки.
Тело гонки в источнике HTML получается из div-класса «resultsBlock», и это включает в себя финишную позицию (Fin) Greyhound, Trap, SP, Time/Sec и Time distance.
В конце концов, это будет выглядеть как этот
track,date,datetime,grade,distance,prize,fin,greyhound,trap,SP,timeSec,time distance
Возможно ли это или я должен получить его для печати на экран в виде таблицы, прежде чем я могу экспортировать в CSV-файл.
from urllib import urlopen
from bs4 import BeautifulSoup
html = urlopen("http://www.gbgb.org.uk/resultsMeeting.aspx?id=136005")
bsObj = BeautifulSoup(html, 'lxml')
nameList = bsObj. findAll("div", {"class": "track"})
for name in nameList:
List = bsObj. findAll("div", {"class": "distance"})
for name in nameList:
print(name. get_text())
nameList = bsObj. findAll("div", {"class": "prizes"})
for name in nameList:
print(name. get_text())
nameList = bsObj. findAll("li", {"class": "first essential fin"})
for name in nameList:
print(name. get_text())
nameList = bsObj. findAll("li", {"class": "essential greyhound"})
for name in nameList:
print(name. get_text())
nameList = bsObj. findAll("li", {"class": "trap"})
for name in nameList:
print(name. get_text())
nameList = bsObj. findAll("li", {"class": "sp"})
for name in nameList:
print(name. get_text())
nameList = bsObj. findAll("li", {"class": "timeSec"})
for name in nameList:
print(name. get_text())
nameList = bsObj. findAll("li", {"class": "timeDistance"})
for name in nameList:
print(name. get_text())
nameList = bsObj. findAll("li", {"class": "essential trainer"})
for name in nameList:
print(name. get_text())
nameList = bsObj. findAll("li", {"class": "first essential comment"})
for name in nameList:
print(name. get_text())
nameList = bsObj. findAll("div", {"class": "resultsBlockFooter"})
for name in nameList:
print(name. get_text())
nameList = bsObj. findAll("li", {"class": "first essential"})
for name in nameList:
print(name. get_text())
Это просто печатает целую кучу вещей каждый на своей собственной линии. Если вам нужен табличный или csv-формат, вам нужно будет переформатировать весь этот код. –
Hi cricket_007.Спасибо за ваш ответ. Как бы я получил материал на экране, чтобы печатать бок о бок (все еще очень новый для всего этого) :) – moonshadow
'print (1,2)' будет печатать на той же строке. 'print (1)' then 'print (2)' будет печатать на новой строке. Так просто. Каждое из них должно быть объединено в списке для печати на одной строке. В настоящее время вы сосредоточены на столбцах вместо строк. –