Реклама на сайте Advertise with us

Black Python. Практические примеры. Часть 1.

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 23.04.07
Сообщения: 8
Рейтинг: 6

Ссылка на сообщениеДобавлено: 27/06/07 в 15:07       Ответить с цитатойцитата 

Привожу ниже пример парсера Google на питоне. Легко расширяется для других поисковых систем. В следующей части будет описана многопоточность. Как параметр запуска скрипта указывается путь к файлу с запросами.

Код:
import sys, urllib, urllib2, re

class BaseClass:

   def log(self, id, message):
       #print "%s:\t%s" % (id, message)
       pass


class HttpClient(BaseClass):

   userAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"

   def setUserAgent(self, userAgent=None):
       self.userAgent = userAgent

   def getPage(self, url=None):
       if url is None:
           url = self.url
       self.log("HttpClient",url)
       req = urllib2.Request(url)
       req.add_header('User-Agent', self.userAgent)
       return urllib2.urlopen(req).read()


class SearchEngineParser(HttpClient):

   params = {}

   def addParam(self, name, value):
       self.params[name] = value

   def setServiceUrl(self, url):
       self.serviceUrl = url
       self.updateUrl()

   def setSearchRule(self, rule):
       self.searchRule = re.compile(rule)

   def updateUrl(self):
       self.url = self.serviceUrl % urllib.urlencode(self.params)

   def parse(self):
       self.log("SEParser",self.query)
       self.updateUrl()
       page = self.getPage()
       entries = self.searchRule.findall(page)
       return entries


class GoogleParser(SearchEngineParser):

   serviceUrl = "http://google.com/search?%s"
   searchRule = r"<a href=\"([^\"]+)\" class=l>"

   def __init__(self, query):
       self.setQuery(query)
       self.setServiceUrl(self.serviceUrl)
       self.setSearchRule(self.searchRule)

   def setQuery(self, query):
       self.addParam("q",query)
       self.query = query

   def setMaxResult(self, maxResult):
       self.addParam("num",maxResult)


fh = open(sys.argv[1])
for query in fh.readlines():
   parser = GoogleParser(query)
   parser.setMaxResult(100)
   urls = parser.parse()
   for url in urls:
       print url


Последний раз редактировалось: dadalov (28/06/07 в 09:44), всего редактировалось 1 раз

Софт на заказ - ICQ 390157542.
Качественно и быстро!

0
 

БешаныйСуслег

С нами с 16.06.04
Сообщения: 1322
Рейтинг: 1338

Ссылка на сообщениеДобавлено: 27/06/07 в 20:27       Ответить с цитатойцитата 

Хороший пиар icon_smile.gif
респект

0
 



С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362

Ссылка на сообщениеДобавлено: 27/06/07 в 20:55       Ответить с цитатойцитата 

и зачем оно нужно это дите мертворожденное ?
заголовок лучше сменить на Dead Python...

0
 



С нами с 23.04.07
Сообщения: 8
Рейтинг: 6

Ссылка на сообщениеДобавлено: 28/06/07 в 09:34       Ответить с цитатойцитата 



Видимо в образовательных целях.

Софт на заказ - ICQ 390157542.
Качественно и быстро!

0
 



С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362

Ссылка на сообщениеДобавлено: 28/06/07 в 10:01       Ответить с цитатойцитата 

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

0
 



С нами с 23.04.07
Сообщения: 8
Рейтинг: 6

Ссылка на сообщениеДобавлено: 28/06/07 в 10:06       Ответить с цитатойцитата 



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

Последний раз редактировалось: dadalov (28/06/07 в 10:36), всего редактировалось 1 раз

Софт на заказ - ICQ 390157542.
Качественно и быстро!

0
 



С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362

Ссылка на сообщениеДобавлено: 28/06/07 в 10:32       Ответить с цитатойцитата 

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

0
 



С нами с 19.12.06
Сообщения: 528
Рейтинг: 511

Ссылка на сообщениеДобавлено: 29/06/07 в 00:07       Ответить с цитатойцитата 

Бокс! icon_smile.gif

Последний раз редактировалось: Hide-R (29/06/07 в 12:30), всего редактировалось 1 раз

0
 



С нами с 19.11.03
Сообщения: 3973
Рейтинг: 2362

Ссылка на сообщениеДобавлено: 29/06/07 в 01:01       Ответить с цитатойцитата 

ну блять да , sigwhore тут еще не отметились...

0
 



С нами с 19.12.06
Сообщения: 528
Рейтинг: 511

Ссылка на сообщениеДобавлено: 29/06/07 в 12:32       Ответить с цитатойцитата 

xreload:
off
Так тебе спокойнее?
/off

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »