Я пытаюсь очистить таблицу, которая занимает несколько страниц, и экспортировать в CSV-файл. кажется, что экспортируется только одна строка данных, и она перемешана.
Я посмотрел в Интернете и перепробовал много итераций и сейчас очень расстроен. Как вы можете сказать из кода, я новичок в кодировании!
import bs4 as bs
import urllib.request
import pandas as pd
import csv
max_page_num = 14
max_page_dig = 1 # number of digits in the page number
with open('result.csv',"w") as f:
f.write("Name, Gender, State, Position, Grad, Club/HS, Rating, Commitment \n")
for i in range(0, max_page_num):
page_num = (max_page_dig - len(str(i))) * "0" +str(i) #gives a string in the format of 1, 01 or 001, 005 etc
print(page_num)
source = "https://www.topdrawersoccer.com/search/?query=&divisionId=&genderId=m&graduationYear=2020&positionId=0&playerRating=&stateId=All&pageNo=" + page_num + "&area=commitments"
print(source)
url = urllib.request.urlopen(source).read()
soup = bs.BeautifulSoup(url,'lxml')
table = soup.find('table')
table_rows = table.find_all('tr')
for tr in table_rows:
td = tr.find_all('td')
row = [i.text for i in td]
#final = row.strip("\n")
#final = row.replace("\n","")
with open('result.csv', 'a') as f:
f.write(row)
Кажется, когда я пишу в CSV, он перезаписывает предыдущие. Это также вставляет это в одну строку, и имя игроков соединяется с названием школы. Спасибо за любую помощь.