@monkeyb

Как правильно составить цикл в phyton?

У меня есть файл со списком url.
Нужные данные со страницы(url) я могу получить:

r = requests.get('https://somesite.com')
# Parsing the HTML
soup = BeautifulSoup(r.content, 'html.parser')
status = soup.find('div', class_='closed')
titles = soup.find('h1', class_='section_hero__title')
id= soup.find('p', class_='numer_id')

Как правильно составить цикл для прохождения по всем url из списка и записи полученных данных в csv ?
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
Для начала оберните ваш код тегом python.

ваш псевдо код для сбора данных будет иметь вид
result = []
for url in urls:
    r = requests.get(url)
    soup = BeautifulSoup(r.content, 'html.parser')
    status = soup.find('div', class_='closed')
    titles = soup.find('h1', class_='section_hero__title')
    id= soup.find('p', class_='numer_id')
    result.append((url, status, titles, id))


где urls это ваши urls из файла. Ваш результат будет список кортежей, где каждый кортеж имеет вид (url, status,titles,id). Полученную структуру данных легко записать в csv файл.
можно например так.
import csv
with open('file.csv', mode='w') as file:
    writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
    writer.writerow(['url','status','titles','id'])
    writer.writerows(result)

Вот так запишет ваши данные первый ряд это названия колонок в вашем csv, а потом данные. Если названия колонок не нужны то уберите строку. writer.writerow(['url','status','titles','id']) из кода.

Ну а так я бы рекомендовал установить pandas создаьть dataframe посмотреть на него может если надо что то подправить и из него писать csv например вот так
import pandas as pd

df = pd.DataFrame(data=result,columns = ['url','status','titles','id'])
df.to_csv('file.csv')

здесь мы создаем фрейм и пишем csv файл в функции to_csv можно задать параметер header=False тогда имена колонок не запишутся, плюс есть параметр mode, его можно поставить в 'a' (append) и если файл уже существует он будет добавлять туда новые строки.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@igor6130
Оберните свой код в for ... in ...
Ответ написан
@whoiam_frontend
Python-разработчик
Используйте оператор for
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы