Я пытаюсь написать скрипт, который очищает веб-страницу, содержащую четыре столбца, присваивает содержимое каждого столбца массиву, и в конце я хочу создать цикл for, который записывает элемент i'th
каждого массива вих соответствующие столбцы в CSV.
Проблема у меня заключается в том, что я не знаю, как создать цикл for, который будет делать это. У меня уже написана функция f.write()
. Я хочу, чтобы таблица выглядела следующим образом:
https://imgur.com/U5uKxO9
Вот код, который у меня есть. Пожалуйста, помните, что я все еще новичок:
from urllib.request import urlopen
from bs4 import BeautifulSoup
my_url = input()
uClient = urlopen(my_url)
page_css = uClient.read()
uClient.close()
page_soup = BeautifulSoup(page_css, "html.parser")
filename = "ge_scrape"
f = open(filename, "w")
headers ="Tag, , Name, , VR, , Value\n"
f.write(headers)
#The following for loops assign values from the columns 'tag', 'name', 'vr', and 'value' to an empty array
#so you can iterate over the arrays and print them in a .csv with a for loop that contains f.write().
tag_array = []
tag_containers = page_soup.findAll("td",{"id":"tag"})
for container in tag_containers:
tag = container.get_text()
tag_array.append(tag)
name_array = []
name_containers = page_soup.findAll("td",{"id":"name"})
for container in name_containers:
name = container.get_text()
name_array.append(name)
vr_array = []
vr_containers = page_soup.findAll("td",{"id":"vr"})
for container in vr_containers:
vr = container.get_text()
vr_array.append(vr)
val_array = []
val_container = page_soup.findAll("td",{"id":"val"})
for container in val_container:
val = container.get_text()
val_array.append(val)
#Below is the attempted code:
i = 0
for (tag, name, vr, val) in zip(tag_array, name_array, vr_array, val_array):
f.write(tag_array[i] + "," + name_array[i] + "," + vr_array[i] + "," + val_array[i] + "\n")
i = i + 1