微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

天涯帖子解放F5只看楼主

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

'''
天涯帖子直播
20150426
python3.4.3
'''
import re,time,os
import requests
from bs4 import *
header={'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8','Accept-Encoding':'gzip,deflate,sdch','Accept-Language':'zh-CN,zh;q=0.8','Cache-Control':'max-age=0','Connection':'keep-alive','Host':'bbs.tianya.cn','User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/38.0.2125.122 Safari/537.36'}
refushtime=30 #认刷新时间
lastpage=1    #最新页面
Furl=''#最新页面URL
lzname=''
#Turl='http://bbs.tianya.cn/post-stocks-1131734-1.shtml'#初始页面URL
Turl='http://bbs.tianya.cn/post-stocks-1345750-1.shtml'
def bsp(newurl):#bs4初始化
	html=requests.get(newurl,headers=header,timeout=10)
	#print(html)#正常显示中文
	soup=BeautifulSoup(html.content.decode())
	return soup
def pagnum(soup):#获取总页数
	#print(soup.find('script',{'type':'text/javascript'}).text)
	tx=soup.find('script',{'type':'text/javascript'}).text
	req=re.search(r'pageCount : \d*,',tx).group(0)
	req=req[12:-1]#截第12位后字符和倒数1字符之间
	#print(req)
	return int(req)
def pagepro():#URL处理
	global Furl
	tx1=Turl.split('-')
	#['http://bbs.tianya.cn/post','stocks','1131734','1.shtml']
	Furl=tx1[0]+'-'+tx1[1]+'-'+tx1[2]+'-'+'%d.shtml'%lastpage
	#print(Furl)
	return Furl
def pagecollect():#获取内容
	soup=bsp(Furl)
	#print(soup)
	txt=[]
	times=[]
	lzpost=soup.findAll('div',{'_host':lzname})
	#print(lzpost[0])
	if lzpost==[]:
		pass
	else:
		for i in range(len(lzpost)):
			ntime=lzpost[i].find('div',{'class':'atl-info'}).text #获取时间
			#times.append(ntime)
			#print(times)
			post=lzpost[i].find('div',{'class':'atl-content'})#一级搜索
			post=post.find('div',{'class':'bbs-content'}).text#二级搜索
			post=post.strip()
			#print(post)
			txt.append(ntime)
			txt.append(post)
	return txt
def formatprint(txt):#输出处理
	if txt==[]:
		print('===========None============')
	else:
		for i in range(0,len(txt),2): #数组【时间,内容,时间……】
			print('='*30)
			print(txt[i])
			txt[i+1]=txt[i+1].replace('-'*29,'\n----------\n')
			print(txt[i+1])
			print('='*30)
			#time.sleep(0.5) #显示间隔
			pass

def main():
	#Turl=input('>>')
	global refushtime,lastpage,Furl,Turl
	soup=bsp(Turl)
	title=re.sub('_.*','=====',soup.title.text)
	print('=====',title)
	lastpage=pagnum(soup)
	print('LastPage:',lastpage)
	Furl=pagepro() #合成最新URL
	print('LastURL:',Furl)
	lzname=soup.find('div',{'class':'atl-menu clearfix js-bbs-act'})['js_activityusername']
	print('Lzname:',lzname)

	formatprint(pagecollect()) #第一次输出
	while True:
		time.sleep(refushtime)
		soup=bsp(Turl)  #刷新
		newtime=pagnum(soup)
		if newtime > lastpage:
			print('LastPage:',newtime)
			lastpage=newtime
			Furl=pagepro()
			formatprint(pagecollect())
		else:
			os.system('cls')
			formatprint(pagecollect())
		print('==========Refush==========')
	
if __name__ == '__main__':
	soup=bsp(Turl)
	title=re.sub('_.*',lzname)
	formatprint(pagecollect()) #第一次输出
	while True:
		time.sleep(refushtime)
		#input('Go to Refush')
		soup=bsp(Turl)  #刷新
		newtime=pagnum(soup)
		if newtime > lastpage:
			print('LastPage:',newtime)
			lastpage=newtime
			Furl=pagepro()
			formatprint(pagecollect())
		else:
			os.system('cls')
			print('==========Refush==========')
			formatprint(pagecollect())
	

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐