import requests
from bs4 import BeautifulSoup
import csv
import time
def get_html(url):
r = requests.get(url)
if r.ok:
return r.text
print(r.status_code)
def write_csv(data): # записываем результаты парсинга (ссылки на карточки товара) в файл urls.txt
with open('urls.txt', 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow([data['url']])
def read_csv(data): # создаем файл urls.txt
with open('urls.txt', encoding='utf-8') as file:
reader = csv.reader(file) #
data = list(reader)
flat_list = [item for sublist in data for item in sublist]
def get_data(html): #получаем ссылки на карточки товара
soup = BeautifulSoup(html, 'lxml') #
items = soup.find_all('div', class_='catalog-item')
for item in items:
try:
url = 'https://a-dubrava.ru' + item.find('a', class_='catalog-item__link').get('href')
except:
url = ''
data = {'url': url}
write_csv(data)
def get_page_data(html): #получаем ссылки на картинки с карточки товара
soup = BeautifulSoup(html, 'lxml') #
imgs = soup.find('div', class_='item__left').find_all('div', itemprop="image")
try:
for img in imgs:
pic1 = 'https://a-dubrava.ru' + imgs[0].find('link', itemprop="contentUrl").get('src')
print(pic1)
except:
img = ''
def main(): # парсинг страниц пагинации
pattern = 'https://a-dubrava.ru/katalog/khvoynye-rasteniya-s/?PAGEN_1={}'
for i in range(0, 9): # создаём рейндж перебор с 0 до 9
url = pattern.format(str(i)) # подставляем цифру в урл в {}
get_data(get_html(url))
def url(): # парсинг карточек товаров из файла url.txt
url = flat_list[0] # подставляем по одному урлу в переменную url
picture_links = []
for url in flat_list:
time.sleep(2)
html = get_html(url)
picture_links.append(get_page_data(html))
if __name__ == '__main__':
main()
import requests
from bs4 import BeautifulSoup
def get_html(url):
r = requests.get(url)
if r.ok:
return r.text
print(r.status_code)
def get_data(html): #получаем данные со страницы,
soup = BeautifulSoup(html, 'lxml') #
imgs = soup.find('div', class_='item__left').find_all('div', itemprop="image")
try:
for img in imgs:
pic1 = 'https://a-dubrava.ru' + imgs[0].find('link', itemprop="contentUrl").get('src')
print(pic1)
except:
img = ''
def main():
url = 'https://a-dubrava.ru/katalog/khvoynye-rasteniya-s/el-s/el-kolyuchaya-s/el-kolyuchaya-bialobok/'
get_data(get_html(url))
if __name__ == '__main__':
main()
import requests
from parse import *
from bs4 import BeautifulSoup
import lxml.html
url = "https://www.dohod.ru/ik/analytics/dividend/nlmk"
source = requests.get(url) # задаем переменную для открытия адреса
main_text = source.text # забираем весь текст из урла
soup = BeautifulSoup(main_text) # "разобранная" страница кода через модуль BeautifulSoup
table = soup.find ("table", { "class" : "content-table" }) # ищем table с классом content-table в "разобранной" soup странице
with open('test.html', 'w') as output_file: # сохраняем инфу в файл
output_file.write(str(table))
f = open('test.html', 'r') # открываем сохраненный файл
f_str = f.read() # читаем сохраненный файл
f.close()
2019 17
2018 16,24
2017 15
2016 14,5
2015 13,4
2014 12,5
2013 11
2012 10,2
2011 9
2010 8,3
2009 7
2008 6,3
2007 5
2006 4
2005 3
2004 2
2003 1
def pay():
i = 0
if year2019 != 0:
i += 1
else:
pass
if year2018 != 0:
i += 1
else:
pass
if year2017 != 0:
i += 1
else:
pass
if year2016 != 0:
i += 1
else:
pass
if year2015 != 0:
i += 1
else:
pass
if year2014 != 0:
i += 1
else:
pass
if year2013 != 0:
i += 1
else:
pass
pay_index = i # получаем pay_index
return pay_index
pay()
nlmk = {след 12m. (прогноз), 20.68, +7.8%}
print("nlmk = {" + data["Год"] + ", " + data["Дивиденд (руб.)"] + ", " + data["Изм. к пред. году"] + "}")
Ругается на аргумент data
Если указываешь его - ошибка not defined
Что указать в аргументе?