Този сайт използва бисквитки (cookies). Ако желаете можете да научите повече тук. Разбрах
IDG  •  PC World  •  Computerworld  •  CIO  •  CFO  •  Networkworld  •  Дискусии  •  Кариерна зона  •  Събития
computerworld | кариерна зона | Lang Cloud
Computerworld | кариерна зона | programming | Python

Паяк за извличане на информация, реализиран със scrapy

Python 583 прочитания


CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# Standard Python library imports
 
 # 3rd party imports
 from scrapy.contrib.spiders import CrawlSpider, Rule
 from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
 from scrapy.selector import HtmlXPathSelector
 
 # My imports
 from poetry_analysis.items import PoetryAnalysisItem
 
 HTML_FILE_NAME = r'.+\.html'
 
 class PoetryParser(object):
 В  В  """
 В  В  Provides common parsing method for poems formatted this one specific way.
 В  В  """

 В  В  date_pattern = r'(\d{2} \w{3,9} \d{4})'
 В  В В 
 В  В  def parse_poem(self, response):
 В  В  В  В  hxs = HtmlXPathSelector(response)
 В  В  В  В  item = PoetryAnalysisItem()
 В  В  В  В  # All poetry text is in pre tags
 В  В  В  В  text = hxs.select('//pre/text()').extract()
 В  В  В  В  item['text'] = ''.join(text)
 В  В  В  В  item['url'] = response.url
 В  В  В  В  # head/title contains title - a poem by author
 В  В  В  В  title_text = hxs.select('//head/title/text()').extract()[0]
 В  В  В  В  item['title'], item['author'] = title_text.split(' - ')
 В  В  В  В  item['author'] = item['author'].replace('a poem by', '')
 В  В  В  В  for key in ['title', 'author']:
 В  В  В  В  В  В  item[key] = item[key].strip()
 В  В  В  В  item['date'] = hxs.select("//p[@class='small']/text()").re(date_pattern)
 В  В  В  В  return item
 
 
 class PoetrySpider(CrawlSpider, PoetryParser):
 В  В  name = 'example.com_poetry'
 В  В  allowed_domains = ['www.example.com']
 В  В  root_path = 'someuser/poetry/'
 В  В  start_urls = ['http://www.example.com/someuser/poetry/recent/',
 В  В  В  В  В  В  В  В  В  'http://www.example.com/someuser/poetry/less_recent/']
 В  В  rules = [Rule(SgmlLinkExtractor(allow=[start_urls[0] + HTML_FILE_NAME]),
 В  В  В  В  В  В  В  В  В  В  В  В  В  В  В  В  В  В  callback='parse_poem'),
 В  В  В  В  В  В  В Rule(SgmlLinkExtractor(allow=[start_urls[1] + HTML_FILE_NAME]),
 В  В  В  В  В  В  В  В  В  В  В  В  В  В  В  В  В  В  callback='parse_poem')]

ICON ICON ICON Tweet it! ICON

Използване на map
В този пример се създава речник с числата от 32 до 255 към техния ASCII еквивалент
Python 1339 прочитания
Изчисляване на Пи
В този пример е показано как може да се изчисли стойността на Пи с помощта на статистически метод
Python 1687 прочитания
Размяна на елементи в списък
Полезен трик в Python
Python 1606 прочитания
Вграждане на флаш със swfobject.js и използване на масиви
<!-- load swfobject to load flash --> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.
Javascript 845 прочитания
Създаване на директории
Направете си файл със списък на директориите, които желате да създадете: Dir_1/Dir_1/dd/Dir_2/и го запишете като directory.lst, след което изпълнете следния скрипт: for i in `cat directory.
Linux/UNIX 933 прочитания
Преброяване на селекцията в TreeView
Когато искате да намерите колко от възлите в едно дърво са селектирани, използвайте следната функция, като й подадете за параметър желаното дърво за анализ.
Visual Basic .NET 1202 прочитания
Валидиране по време на въвеждане
Функцията validateAsYouType приема за параметър ID на елемента за проверка
Javascript 417 прочитания

Слайдшоу

HR на месеца

Петя Костова, старши бизнес партньор „Човешки ресурси“ VMware за България и за регион EMEA

Петя Костова, старши бизнес партньор „Човешки ресурси“ VMware за България и за регион EMEA

“ Петя Костова, старши бизнес партньор „Човешки ресурси“ VMware за България и за регион EMEA, е лице на рубриката HR of the Month („ЧР на месеца“) през февруари. Инициативата се... ” вижте още »

IT сертификати