Я просто узнаю о python & web scraping, я пытаюсь очистить секционные времена от attheraces, и я могу получить данные в электронную таблицу, но все это вертикально, и я хочу получить его как горизонтальную таблицу (например, сайт), пока у меня это...
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
my_url = "http://www.attheraces.com/ajax/getContent.aspx?ctype=sectionalsracecardresult&raceid=1062194&page=/racecard/Windsor/8-October-2018/1325&dtype=times"
uClient = uReq (my_url)
page_html =uClient.read()
uClient.close()
page_soup=soup(page_html, "html.parser")
containers = page_soup.findAll ("div",{"class":"card-body__td card-body__td--centred card-cell__time card-cell__time--8-sectionals"})
filename = "sectionals.csv"
f= open (filename, "w")
headers = "sectional\n"
f.write(headers)
for container in containers:
sectional = container.div.div.span.text
print(sectional)
f.write(sectional + "," + "\n")
f.close()
Если вы перейдете непосредственно к ячейкам, вам придется делать предположения о строках. Начните с строк:
containers = page_soup.findAll("div", {"class":"card-cell card-cell--primary card-cell--primary--no-only"})
# Open a file handle here and use it to create a csv writer (I like to use DictWriter).
for container in containers:
row = []
for cell in container.findAll("div", {"class":"card-body__td card-body__td--centred card-cell__time card-cell__time--8-sectionals"}):
sectional = cell.div.div.span.text
row.append(sectional)
# Write a row to your csv writer here.
print(row)
Посмотрите на использование модуля csv
Python, чтобы избежать общих проблем. Кроме того, синтаксис with
синтаксисом - отличный способ убедиться в правильности управления ресурсами; csv
поддерживает это, как и файлы (with open('...', 'r') as:
, и они могут использоваться вместе.