Как собрать все данные из файлов парсинга в mysql таблицу?
Написал скрипт парсинга и теперь встал вопрос, чтобы все файлы шли из текста в mysql.
Как это можно реализовать?
import requests
import csv
from bs4 import BeautifulSoup as BS
# Имитация реальных дейтсвий
headers = {'accept': 'text/css,*/*;q=0.1',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0'}
base_url = 'https://'
def main_parse(headers_http, url_base):
urls = [url_base]
ads = []
'''Создание сессии'''
session = requests.Session()
'''Эмуляция действий в браузере'''
request = session.get(url_base, headers=headers_http)
if request.status_code == 200:
soup = BS(request.content, 'lxml')
'''Добавление страниц в список всех страниц'''
try:
pagination = soup.find_all('span', attrs={'class': 'pagination-item-1WyVp'})
count = int(pagination[-2].text)
for i in range(1):
url = f'https://'
if url not in urls:
urls.append(url)
except:
pass
'''Парсинг по страницам'''
for url in urls:
request = session.get(url, headers=headers_http)
soup = BS(request.content, 'lxml')
'''Парсинг данных на одной странице'''
divs = soup.find_all('div', attrs={'class': 'item__line'})
for div in divs:
title = div.find('a', attrs={'class': 'snippet-link'}).text
url = '{0}{1}'.format('https://', div.find('a', attrs={'class': 'snippet-link'})['href'])
price = div.find('span', attrs={'data-marker': 'item-price'}).text
address = div.find('span', attrs={'class': 'item-address__string'}).text
date = div.find('div', attrs={'data-marker': 'item-date'})['data-absolute-date']
ads.append({
'title': title,
'url': url,
'price': price,
'address': address,
'date': date
})
else:
print('ERROR')
return ads
def files_writer(ads):
with open('parsed_ads.csv', 'w', encoding='utf-8') as file:
a_pen = csv.writer(file)
a_pen.writerow(('рег. номер', 'наименование, url', 'телефон', 'email'))
for ad in ads:
a_pen.writerow((ad['title'], ad['url'], ad['price'], ad['address'], ad['date']))
ads_list = main_parse(headers, base_url)
files_writer(ads_list)