700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 用Python提取CSDN灌水乐园的帖子

用Python提取CSDN灌水乐园的帖子

时间:2023-03-04 08:28:00

相关推荐

用Python提取CSDN灌水乐园的帖子

无聊的很,写了个程序来提取CSDN灌水乐园的帖子。主要使用了urllib和re两个库。

可以提取帖子的标题,链接,分值和回复数。

代码如下:(就不解释了)

# -*- coding: utf-8 -*-import urllib, redef parsepost(msg):title = re.search('''title="(.+?)"''', msg).group()[7:-1]print titlehref = re.search('''title=(.+?)href="(/S+?)"''', msg).group()spos = href.find('href=')href = href[spos + 6:-1]print hrefnums = []for r in re.finditer('''<td>[^.]+?/d+''', msg):nums += [r.group()]assert(len(nums) == 2)score = int(re.search('''/d+''', nums[0]).group())replies = int(re.search('''/d+''', nums[1]).group())print scoreprint repliesprint "============================================"sock=urllib.urlopen("/SList/FreeZone")source=sock.read()print sourcestartpos = []endpos = []trs = []for i in re.finditer('''<tr class="(dark|light)">''', source):startpos += [i.start()]for j in re.finditer('''</tr>''', source):endpos += [j.end()]startpos = startpos[1:]endpos = endpos[4:]assert(len(startpos) == len(endpos))for k in range(0, len(startpos)):trs += [source[startpos[k]:endpos[k]]]for t in trs:parsepost(t)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。