Я php разработчик, но сейчас учусь python.
Я очищаю некоторую информацию, и список результатов огромен: 150 000+ строк.
Следующий код действительно работает однако писатель или скрипт, кажется, захлебываются примерно на 10 000 строк.
Я хочу разделить результаты и попросить писателя записать несколько файлов CSV по 10 000 строк, а не пытаться записать все результаты в один файл.
В php id сделайте это с помощью переменной счетчика и прекратите запись текущего файла, начните записывать новый файл с новым именем.
Однако, все еще изучая синтаксис для python.
Кто-нибудь может указать мне правильные линии?
Спасибо.
Вот код:
while True:
# preOffset = driver.execute_script("return document.body.scrollHeight;")
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") ## Scroll Content
# if driver.find_element_by_class_name("NoMoreItems"):
if driver.find_elements_by_xpath("//*[@class='NoMoreItems']"):
break
# print(driver.execute_script("return document.body.scrollHeight;"))
html= driver.page_source ## Get HTML Source
soup = BeautifulSoup(html, 'lxml') ## Parse to BS4
tag = soup.find('div', {'id': 'members'}) ## Find desire DIV
tag = tag.find('div', {'class': 'ListContainer'}) ## Get List container
# for achr in tag.finAll('a'):
# print(achr.string)
with open('members.csv', 'w', encoding="utf-8", newline='') as csvfile: ## Initialize the CSV
# Column of csv file
column_name = ['Name', 'URL'] ## Define Column Name and URL
writer = csv.DictWriter(csvfile, fieldnames=column_name)
writer.writeheader() ## Header Write
for link in tag.findAll('a'): ## Find each Anchor tag contains Name
link = link
if link.string != None:
writer.writerow({
'Name': link.string,
'URL': link["href"]
})