Я разработчик 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"]
})
newline=''
? - person taras   schedule 04.08.2020tag.find_all('a')
, но часть ожидаемых данных была в другом месте. - person Serge Ballesta   schedule 04.08.2020for idx, link in enumerate(tag.findAll('a')):
- person snakecharmerb   schedule 04.08.2020