Парсинг на одних регулярках - Python

Узнай цену своей работы

Формулировка задачи:

проблемы с картинками
Листинг программы
  1. import requests
  2. import re
  3. numb = 1
  4. endd = ';preset=smartfon/'
  5. startt = 'http://rozetka.com.ua/mobile-phones/c80003/filter/page='
  6. def writeHeader(file):
  7. header = r"""<!DOCTYPE html>
  8. <html>
  9. <head>
  10. <meta charset='utf-8' />
  11. <title>Смартфоны на розетке</title>
  12. </head>
  13. """
  14. file.write(header)
  15. pass
  16. def writeBody(file, data):
  17. file.write("\t<body>\n")
  18. file.write('<ul>')
  19. for i in data:
  20. file.write('<li><a href="{}">{}</a></li>'.format(*i))
  21. for i in data1:
  22. file.write('<img src="'+i+'"')
  23. file.write('</ul>')
  24. file.write("\t</body>\n")
  25. pass
  26. def witeFooter(file):
  27. footer = "</html>"
  28. file.write(footer)
  29. pass
  30. def writeToHTML(file, data):
  31. with open(file, 'a', encoding='utf-8') as f:
  32. writeHeader(f)
  33. writeBody(f, data)
  34. witeFooter(f)
  35. outHTML = "result.html"
  36.  
  37. for z in range(11):
  38. ppp = requests.get(startt+str(numb)+endd)
  39. output = ppp.text
  40. reNameRef = re.compile(r'<div\s+class="g-i-tile-i-title.*\s+<a.*href="([^"]+)"[^>]+>\s+([^<]+?)(?:\n|\t)+', re.MULTILINE)
  41. data = reNameRef.findall(output)
  42. p = re.compile(r'http.*[jpg|png]')
  43. data1 = p.findall(output)
  44. writeToHTML(outHTML, data)
  45. numb+=1

Решение задачи: «Парсинг на одних регулярках»

textual
Листинг программы
  1. from bs4 import BeautifulSoup
  2. import requests
  3. url = 'http://rozetka.com.ua/mobile-phones/c80003/filter/page=1;preset=smartfon/'
  4. r = requests.get(url)
  5. page = BeautifulSoup(r.text, "html.parser")
  6. rows = page.findAll('div',{'class':"g-i-tile-i-title clearfix"})
  7. names = []
  8. for name in rows:
  9.     names.append(name.text)
  10. for i in names:
  11.     print(i.strip())
  12. rows = page.findAll('div',{'class':"g-price-uah"})
  13. prices = []
  14. for price in rows:
  15.     prices.append(price.text)
  16. for i in prices:
  17.     print(i)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы