Xgu.ru теперь в Контакте  — приходите и подключайтесь.
Пока мы работаем над следующими видео, вы можете подключиться в Контакте. Познакомимся и обсудим новые страницы и ролики.

Vk-big.pngYoutube-big.jpeg

Web и Python

Материал из Xgu.ru

Перейти к: навигация, поиск

Содержание

[править] Вопросы и ответы

[править] Как подключиться к HTTPS-серверу из программы на Python?

Используя httplib:

   import httplib
   HOSTNAME = 'login.yahoo.com'
   conn = httplib.HTTPSConnection(HOSTNAME)
   conn.putrequest('GET', '/')
   conn.endheaders()
   response = conn.getresponse()
   print response.read()

Подробнее: [1].

Используя urllib2:

f = urllib2.urlopen('https://localhost/page.html')
f.read()

Если нужно ещё аутентификацию:

import urllib2
auth_handler = urllib2.HTTPBasicAuthHandler()
auth_handler.add_password(realm='REALM',
                          uri='https://localhost:19080/',
                          user='user',
                          passwd='password')
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
f = urllib2.urlopen('https://localhost:19080/login.html')
f.read()

Подробнее: [2]


[править] Как извлекать данные на web-страницах и кидать их в виде оповещений на экран?

В данном случае для извлечения данных используется Beautiful Soup:

#!/usr/bin/env python2

import requests
from bs4 import BeautifulSoup
import pynotify
from time import sleep

def sendmessage(title, message):
    pynotify.init("Test")
    notice = pynotify.Notification(title, message)
    notice.show()
    return

url = "http://static.cricinfo.com/rss/livescores.xml"
while True:
    r = requests.get(url)
    while r.status_code is not 200:
            r = requests.get(url)
    soup = BeautifulSoup(r.text)
    data = soup.find_all("description")
    score = data[1].text
    sendmessage("Score", score)
    sleep(60)

[править] Дополнительная информация

[править] Примечания