写以下代码的目的是分析一天中各时段理想论坛中用户发帖回帖的活跃程度,获得结尾那张图表是核心。
以下代码两种爬虫协助,论坛爬虫先爬主贴,爬到主贴后启动帖子爬虫爬子贴,然后把每个子贴的发表时间等存入数据库。
再用一个程序对各个时段中发帖次数进行统计,然后用Excel生产图表。
获取数据的爬虫代码如下:
#论坛爬虫,用于爬取主贴再爬子贴
from bs4 importBeautifulSoupimportrequestsimportthreadingimportreimportpymysql
user_agent='Mozilla/4.0 (compatible;MEIE 5.5;windows NT)'headers={'User-Agent':user_agent}#论坛爬虫类(多线程)
classforumCrawler(threading.Thread):def __init__(self,name,url):
threading.Thread.__init__(self,name=name)
self.name=name
self.url=url
self.infos=[]defrun(self):print("线程"+self.name+"开始爬取页面"+self.url);try:
rsp=requests.get(self.url,headers=headers)
soup= BeautifulSoup(rsp.text,'html.parser',from_encoding='utf-8')#print(rsp.text); # rsp.text是全文
#找出span
for spans in soup.find_all('span',class_="forumdisplay"):#找出link
for link in spans.find_all('a'):if link and link.get("href"):#print(link.get("href"))
#print(link.text+'\n')
topicLink="http://www.55188.com/"+link.get("href")
tc=topicCrawler(name=self.name+'_tc#'+link.get("href"),url&