def test_api(): class MySettings(Settings): web = {"with_ajax": False} api = Api('https://news.ycombinator.com/', settings=MySettings) class Post(Item): url = XPath('//a[@class="storylink"][1]/@href') title = XPath('//a[@class="storylink"][1]/text()') class Meta: source = XPath('//tr[@class="athing"]') route = {'/all?page=:page': '/news?p=:page'} class Page(Item): next_page = XPath('//a[@class="morelink"]/@href') class Meta: source = None route = {'/all?page=:page': '/news?p=:page'} def clean_next_page(self, next_page): return "http://127.0.0.1:5000/" + str(next_page) api.register(Post) api.register(Page) api.parse('/news?p=1')
def test_api_with_ajax(): from toapi import XPath, Item, Api api = Api('https://news.ycombinator.com/', with_ajax=True) class Post(Item): url = XPath('//a[@class="storylink"][1]/@href') title = XPath('//a[@class="storylink"][1]/text()') class Meta: source = XPath('//tr[@class="athing"]') route = '/news\?p=\d+' class Page(Item): next_page = XPath('//a[@class="morelink"]/@href') class Meta: source = None route = '/news\?p=\d+' def clean_next_page(self, next_page): return "http://127.0.0.1:5000/" + next_page api.register(Post) api.register(Page) print(api.parse('/news?p=1'))
def test_api_with_ajax(): from toapi import XPath, Item, Api api = Api('https://news.ycombinator.com/', with_ajax=True) class Post(Item): url = XPath('//a[@class="storylink"][1]/@href') title = XPath('//a[@class="storylink"][1]/text()') class Meta: source = XPath('//tr[@class="athing"]') route = '/' api.register(Post) print(api.parse('/'))
from toapi import Api from items.google import Google from items.bing import Bing from items.baidu import Baidu from settings import MySettings api = Api(settings=MySettings) api.register(Google) api.register(Bing) api.register(Baidu) if __name__ == '__main__': api.serve()
class MovieList(Item): url = XPath('//b//a[@class="ulink"]/@href') title = XPath('//b//a[@class="ulink"]/text()') class Meta: source = XPath('//table[@class="tbspan"]') route = { '/movies/?page=1': '/html/gndy/dyzz/', '/movies/?page=:page': '/html/gndy/dyzz/index_:page.html', '/movies/': '/html/gndy/dyzz/' } def clean_url(self, url): return '/movies/{}/'.format(url.split('/')[-1].split('.')[0]) class Movie(Item): download = XPath('//*[@id="Zoom"]/table[1]//a/text()') class Meta: source = None route = {'/movies/:id': '/i/:id.html'} api.register(MovieList) api.register(Movie) api.serve()
from toapi import Api from items.detail import Detail from items.search_result import SearchResult from settings import MySettings api = Api('https://medicament.ma', settings=MySettings) api.register(SearchResult) api.register(Detail) if __name__ == '__main__': api.serve(port=10000)
#!/usr/bin/env python from toapi import Api from items.image_info import ImageInfo from items.user import User from settings import MySettings api = Api(settings=MySettings) api.register(ImageInfo) api.register(User) if __name__ == '__main__': api.serve()
from toapi import Api from items.page import Page from items.post import Post from items.gio_district import GIO from items.gio_detail import GIO_DETAIL from settings import MySettings api = Api('http://sh.lianjia.com', settings=MySettings) api.register(Page) api.register(Post) api.register(GIO) api.register(GIO_DETAIL) if __name__ == '__main__': api.serve()
from toapi import Api from items.hotbook import HotBook from items.book import Book from settings import MySettings api = Api('https://news.ycombinator.com', settings=MySettings) api.register(HotBook) api.register(Book) if __name__ == '__main__': api.serve()
#coding=utf-8 from toapi import XPath, Item, Api, Settings class MySettings(Settings): web = { "with_ajax": True, "request_config": {}, "headers": None } api = Api('https://sh.2boss.cn/estate/house', settings=MySettings) class RabbitDoc(Item): url = XPath('//div[@class="content_box2"]/a/@href') title = XPath('//div[@class="content_box2"]/a/div/h2/text()') class Meta: source = XPath('//div[@class="clearfix content_box estate_external"]') route = {'/House?Community=:community': '/:community/s5'} api.register(RabbitDoc) api.serve()
from toapi import Api from items.list import MovieList, MovieListPage from items.data import MovieData from settings import MySettings api = Api('https://yts.am/', settings=MySettings) api.register(MovieListPage) api.register(MovieList) api.register(MovieData) if __name__ == '__main__': api.serve()
from toapi import Api from config.site import URL from items.page import Page from items.recipe import Recipe from items.content import Content from items.category import Category from settings import MemCacheSettings api = Api(URL, settings=MemCacheSettings) api.register(Page) api.register(Recipe) api.register(Content) api.register(Category) if __name__ == '__main__': api.serve()
for node in title[0].itertext(): text += node title = text.strip() return title class Meta: source = Css('li.b_algo') route = {'/:wd': '/search?q=:wd&ensearch=1'} class Baidu(Bing): __name__ = 'baidu' __base_url__ = 'http://www.baidu.com' url = Css('h3.t a', attr='href') title = Css('h3.t a') class Meta: source = Css('div.result') route = {'/:wd': '/s?wd=:wd&ie=utf-8&vf_bl=1'} api.register(Baidu) api.register(Bing) if __name__ == '__main__': print(api.parse('/python')) api.serve() # Visit http://127.0.0.1:5000/python
from toapi import Api from items.allitebooks import Page, Book, Detail from settings import MySettings api = Api(settings=MySettings) api.register(Page) api.register(Book) api.register(Detail) if __name__ == '__main__': api.serve()
route = '/html/gndy/dyzz/index_\d+.html' class Post(Item): __base_url__ = 'https://news.ycombinator.com' url = XPath('//a[@class="storylink"]/@href') title = XPath('//a[@class="storylink"]/text()') class Meta: source = XPath('//tr[@class="athing"]') route = '/news\?p=\d+' class Page(Item): __base_url__ = 'https://news.ycombinator.com' next_page = XPath('//a[@class="morelink"]/@href') class Meta: source = None route = '/news\?p=\d+' def clean_next_page(self, next_page): return "http://127.0.0.1:5000/" + next_page api.register(Movie) api.register(Post) api.register(Page) api.serve()
from toapi import Api from items.page import Page from items.post import Post from settings import MySettings api = Api('https://news.ycombinator.com', settings=MySettings) api.register(Page) api.register(Post) if __name__ == '__main__': api.serve()
from toapi import Api from items.hotbook import HotBook from items.book import Book from items.search import Search from settings import MySettings import json import requests api = Api('', settings=MySettings) api.register(HotBook) api.register(Book) api.register(Search) @api.server.app.route('/search/<keyword>') def search_page(keyword): ''' 91bay新书论坛 搜索功能 ''' data = { 'searchsel': 'forum', 'mod': 'forum', 'srchtype': 'title', 'srchtxt': keyword, } r = requests.post( 'http://91baby.mama.cn/search.php?searchsubmit=yes', data) r.encoding = 'utf8' html = r.text results = {}
from toapi import XPath, Item, Api, Settings class MySettings(Settings): web = { "with_ajax": False, "request_config": {}, "headers": None } api = Api('http://gaoqing.la/', settings=MySettings) class Movie(Item): url = XPath('//a[@class="zoom"]/@href') title = XPath('//a[@class="zoom"]/@title') class Meta: source = XPath('//*[@id="post_container"]/li') route = '/' api.register(Movie) api.serve()
from toapi import Api from items.pexels import Pexels from items.pixabay import Pixabay from settings import MySettings api = Api(settings=MySettings) api.register(Pixabay) api.register(Pexels) if __name__ == '__main__': api.serve()
from toapi import XPath, Item, Api api = Api('https://news.ycombinator.com/') class Post(Item): url = XPath('//a[@class="storylink"][1]/@href') title = XPath('//a[@class="storylink"][1]/text()') class Meta: source = XPath('//tr[@class="athing"]') route = '/' api.register(Post) api.serve() # Visit http://127.0.0.1:5000/
from toapi import Api from .items.page import Page from .items.post import Post from .items.user import User from .settings import MySettings api = Api('https://news.ycombinator.com/', settings=MySettings) api.register(User) api.register(Page) api.register(Post) api.serve(ip='0.0.0.0', port=5000)
#!/usr/bin/env python from toapi import Api from items.index import IndexOne, IndexArticle, IndexQuestion from items.article import Article from items.question import Question from items.one import One from settings import MySettings api = Api(settings=MySettings) api.register(IndexOne) api.register(IndexArticle) api.register(IndexQuestion) api.register(Article) api.register(Question) api.register(One) if __name__ == '__main__': api.serve()
from toapi import XPath, Item, Api api = Api('http://www.dy2018.com/') class Movies(Item): url = XPath('//b//a[@class="ulink"]/@href') title = XPath('//b//a[@class="ulink"]/text()') class Meta: source = XPath('//table[@class="tbspan"]') route = '/html/gndy/dyzz/index_\d+.html' api.register(Movies) api.serve()