Джанго Веб-приложение с красивым супом, запрос - PullRequest
0 голосов
/ 15 ноября 2018

Я хотел бы иметь веб-сайт, когда пользователь вводит что-то, а затем он получает все данные для просмотра данных на веб-сайте ..

Пока этот код python3 работает нормально через блокнот jupyter.Вы, ребята, можете проверить это в блокноте Jupyter.Но я хочу надлежащим образом, которые для пользовательского интерфейса.Я знаю, что Django может интегрироваться с кодом Python, но куда я должен поместить этот код?это models.py?

from urllib.request import Request, urlopen as uReq 
from bs4 import BeautifulSoup as soup

def make_soup(website) :

    req =  Request(website,headers = {'User-Agent' : 'Mozilla/5.0'})
    uClient = uReq(req)
    page_html = uClient.read()
    uClient.close()
    page_soup = soup(page_html, 'html.parser')
    return page_soup

google_news_url = 'https://www.google.com.my/search?q={}&source=Int&tbm=nws'

def forge_url (q):
    return google_news_url.format(q.replace(' ','+'))

news_url = forge_url (input('Enter Search'))
website = make_soup(news_url)
headlines = website.findAll('h3')
n = 0
for item in headlines :
    top = item.a
    #print(top)
    #print()
    text_headlines = top.text
    print(text_headlines)
    print()
    n +=1

Кстати, что я должен поместить в views.py и шаблоны также.Спасибо;)

1 Ответ

0 голосов
/ 15 ноября 2018

Очистка - довольно трудоемкая задача,

Требуется много времени, чтобы получить данные, и даже больше, чтобы обработать данные.

Итак, чтобы сделать хороший сайтСоскоб состоит в том, что вы должны определить некоторые фоновые задачи, выполняющие работу, в то время как пользователи могут сделать что-то еще или увидеть панель процесса.

Также не все веб-сайты отображаются на стороне сервера, поэтому вы не можете получить данные страницыс запросами или другими подобными библиотеками.Вы можете использовать селен, чтобы открыть страницу в браузере (Firefox и Chrome), отобразить полную страницу и затем передать исходный код библиотекам, таким как BS, чтобы извлечь нужный контент.

Поэтому я рекомендую:

  • для создания представления для запроса URL-адреса страницы,

  • Создание одной или нескольких фоновых задач для выполнения тяжелой работы (например, с сельдереем)

  • , а затем передать результат пользователю после завершения процесса.

Именованные библиотеки можно найти здесь:

Селен

Сельдерей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...