예제 #1
0
파일: example.py 프로젝트: deactivated/itsy
def stargazers_handler(task, doc):
    for url in doc.extract_links('#watchers li > a'):
        yield Task(url=url, document_type='user')

    page_links = CSSSelector('.pagination a')(doc.lxml)
    if page_links:
        next_url = page_links[-1].attrib['href']
        yield Task(url=next_url, document_type='stargazers')
예제 #2
0
파일: test_queue.py 프로젝트: storborg/itsy
    def test_roundtrip(self):
        task = Task('http://www.example.com', 'plain')

        q = Queue('test')
        q.push(task)

        task2 = q.pop()
        self.assertEqual(task.url, task2.url)
예제 #3
0
파일: example.py 프로젝트: deactivated/itsy
def explore_handler(task, doc):
    for url in doc.extract_links('.ranked-repositories h3 a'):
        if url.count('/') == 4:
            document_type = 'repo'
        elif url.count('/') == 3:
            document_type = 'user'
        else:
            continue
        yield Task(url=url, document_type=document_type)
예제 #4
0
파일: example.py 프로젝트: deactivated/itsy
def repo_handler(task, doc):
    yield Task(url=task.url + '/stargazers', document_type='stargazers')
예제 #5
0
파일: example.py 프로젝트: deactivated/itsy
def user_handler(task, doc):
    for url in doc.extract_links('.popular-repos .public a'):
        yield Task(url=url, document_type='repo')