У меня есть следующий скрипт:
import mechanize, cookielib, re ...
br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)
br.addheaders = ....
and do stuff
Поскольку мой сценарий становится очень большим, я хочу разделить его на классы. Один класс для обработки веб-соединения, один класс для выполнения различных действий и так далее. Из того, что я прочитал, мне нужно что-то вроде:
from web_session import * # this my class handling web-connection (cookies + auth)
from do_stuff import * # i do stuff on web pages
и в моем основном у меня есть:
browser = Web_session()
stuff = Do_stuff()
проблема для меня в том, что я теряю файлы cookie сеанса, когда передаю их в Do_stuff. Может ли кто-нибудь помочь мне с базовым примером классов и взаимодействия, скажем: я вхожу на сайт, просматриваю страницу и хочу сделать что-то вроде re.findall("something", one_that_page). заранее спасибо
Обновление: Основной скрипт:
br = WebBrowser()
br.login(myId, myPass)
Класс веб-браузера:
class WebBrowser():
def __init__(self):
self.browser = mechanize.Browser()
cj = cookielib.LWPCookieJar()
self.browser.set_cookiejar(cj)
self.browser.addheaders = ....
def login(self, username, password):
self.username = username
self.password = password
self.browser.open(some site)
self.browser.submit(username, password)
def open(self, url):
self.url = url
self.browser.open(url)
def read(self, url):
self.url = url
page = self.browser.open(url).read()
return page
Текущее состояние: Эта часть работает отлично, я могу войти в систему, но я теряю «плюшки» класса механизированных, такие как открытие, публикация или чтение URL-адреса. Например:
management = br.read("some_url.php")
все мои куки пропали (ошибка: необходимо авторизоваться)
Как я могу это исправить?