Exemple #1
0
 def fetch_post(self, board, pid, num):
     params = {'board': board, 'file': pid2str(pid), 'num': num}
     html = self._do_action('bbscon', params)
     soup = BeautifulSoup(html)
     txt = soup.find('textarea').text
     ret = Post(board, pid, num)
     ret.parse_post(txt)
     # TODO: works for 'x' post
     s = soup.findAll('a')[-1]['href']
     gid = parse_qs(urlparse(s).query).get('gid', None)
     if gid is not None:
         ret.gid = gid[0]
     else:
         ret.gid = None
     return ret
Exemple #2
0
 def fetch_post(self, board, pid, num):
     params = {'board': board,
               'file': pid2str(pid),
               'num': num}
     html = self._do_action('bbscon', params)
     soup = BeautifulSoup(html)
     txt = soup.find('textarea').text
     ret = Post(board, pid, num)
     ret.parse_post(txt)
     # TODO: works for 'x' post
     s = soup.findAll('a')[-1]['href']
     gid = parse_qs(urlparse(s).query).get('gid', None)
     if gid is not None:
         ret.gid = gid[0]
     else:
         ret.gid = None
     return ret
Exemple #3
0
 def fetch_topic(self, board, pid, start=None):
     params = {'board': board, 'file': pid2str(pid)}
     if start:
         params['start'] = start
     html = self._do_action('bbstcon', params)
     soup = BeautifulSoup(html)
     ret = Topic(board, pid)
     items = soup.findAll('table', {'class': 'main'})
     if not items:
         raise ContentError()
     for i in items:
         c = i.tr.td.a['href']
         p = Post(board, parse_pid(c), parse_num(c))
         c = i.findAll('tr')[1].td.textarea.text
         p.parse_post(c)
         ret.post_list.append(p)
     for i in soup.body.center.findAll('a', recursive=False, limit=3):
         if i.text == u'本主题下30篇':
             ret.next_start = int(parse_href(i['href'], 'start'))
     return ret
Exemple #4
0
 def fetch_topic(self, board, pid, start=None):
     params = {'board': board, 'file': pid2str(pid)}
     if start:
         params['start'] = start
     html = self._do_action('bbstcon', params)
     soup = BeautifulSoup(html)
     ret = Topic(board, pid)
     items = soup.findAll('table', {'class': 'main'})
     if not items:
         raise ContentError()
     for i in items:
         c = i.tr.td.a['href']
         p = Post(board, parse_pid(c), parse_num(c))
         c = i.findAll('tr')[1].td.textarea.text
         p.parse_post(c)
         ret.post_list.append(p)
     for i in soup.body.center.findAll('a', recursive=False, limit=3):
         if i.text == u'本主题下30篇':
             ret.next_start = int(parse_href(i['href'], 'start'))
     return ret