Парсинг сайта BeautifulSoup - Python

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

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

Самостоятельно занимаюсь изучением языка Python. Решил написать примитивный парсер сайта, используя библиотеку BeautifulSoup, мало того это код из видеоурока.
и получаю такой эксепт:
Понятно что, что то с кодировкой, но не ясно, как победить, гугл не дал результатов.

UPD: Пока сам придумал обходной маневр обозвав переменную str типом данных.

Решение задачи: «Парсинг сайта BeautifulSoup»

textual
Листинг программы
# -*- coding: utf-8 -*-
import urllib.request
from bs4 import BeautifulSoup
import premailer
import logging
 
 
def get_html(url):
    response = urllib.request.urlopen(url)
    return response.read()
 
 
def parse(html):
    soup = BeautifulSoup(html, 'html.parser')
    head = soup.find('head')
    table = soup.find('div', {"class": "Search-list"})
 
    result_html = premailer.Premailer('<html>' + str(head) + '<body>' + str(table) + '</body></html>',
                                      cssutils_logging_level=logging.CRITICAL).transform()
    with open('result.html', 'w') as f_obj_out:
        f_obj_out.write(result_html)
 
    send_mail()
 
 
def send_mail():
    import smtplib
    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
 
    fromaddr = "your_gmail_account"
    toaddr = "address_to_send_to"
    mypass = "your_gmail_password"
 
    msg = MIMEMultipart()
    msg['From'] = fromaddr
    msg['To'] = toaddr
    msg['Subject'] = "your_desired_subject"
 
    with open('result.html') as f_obj:
        body = f_obj.read()
 
    msg.attach(MIMEText(body, 'html'))
 
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    server.login(fromaddr, mypass)
    text = msg.as_string()
    server.sendmail(fromaddr, toaddr, text)
    server.quit()
 
 
def main():
    parse(get_html('https://www.fabrikant.ru/trades/procedure/search/'))
 
 
if __name__ == "__main__":
    main()

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


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

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

15   голосов , оценка 4 из 5