当前位置: 首页 > news >正文

网站建设需要学习什么上海关键词排名优化怎样

网站建设需要学习什么,上海关键词排名优化怎样,山东大学网站设计与建设,代运营工作内容前言: 之前学习了用python爬虫的基本知识,现在计划用爬虫去做一些实际的数据统计功能。由于前段时间演员的诞生带火了几个年轻的实力派演员,想用爬虫程序搜索某论坛中对于某些演员的讨论热度,并按照日期统计每天的讨论量。 这个…

前言:

之前学习了用python爬虫的基本知识,现在计划用爬虫去做一些实际的数据统计功能。由于前段时间演员的诞生带火了几个年轻的实力派演员,想用爬虫程序搜索某论坛中对于某些演员的讨论热度,并按照日期统计每天的讨论量。

这个项目总共分为两步:

1. 获取所有帖子的链接

将最近一个月内的帖子链接保存到数组中

2. 从回帖中搜索演员名字

从数组中打开链接,翻出该链接的所有回帖,在回帖中查找演员的名字

 

 

获取所有帖子的链接:

搜索的范围依然是以虎扑影视区为界限。虎扑影视区一天约5000个回帖,一月下来超过15万回帖,作为样本来说也不算小,有一定的参考价值。

完成这一步骤,主要分为以下几步:

1. 获取当前日期

2. 获取30天前的日期

3. 记录从第一页往后翻的所有发帖链接

 

1. 获取当前日期

这里我们用到了datetime模块。使用datetime.datetime.now(),可以获取当前的日期信息以及时间信息。在这个项目中,只需要用到日期信息就好。

 

2. 获取30天前的日期

用datetime模块的优点在于,它还有一个很好用的函数叫做timedelta,可以自行计算时间差。当给定参数days=30时,就会生成30天的时间差,再用当前日期减去delta,可以得到30天前的日期,将该日期保存为startday,即开始进行统计的日期。不然计算时间差需要自行考虑跨年闰年等因素,要通过一个较为复杂的函数才可以完成。

today = datetime.datetime.now()delta = datetime.timedelta(days=30)i = "%s" %(today - delta)startday = i.split(' ')[0]today = "%s" %todaytoday = today.split(' ')[0]

 

在获得开始日期与结束日期后,由于依然需要记录每一天每个人的讨论数,根据这两个日期生成两个字典,分别为actor1_dict与actor2_dict。字典以日期为key,以当日讨论数目作为value,便于每次新增查找记录时更新对应的value值。

strptime, strftime = datetime.datetime.strptime, datetime.datetime.strftimedays = (strptime(today, "%Y-%m-%d") - strptime(startday, "%Y-%m-%d")).daysfor i in range(days+1):temp = strftime(strptime(startday, "%Y-%m-%d") + datetime.timedelta(i), "%Y-%m-%d")actor1_dict[temp] = 0actor2_dict[temp] = 0

 

3. 记录从第一页往后翻的所有发帖链接

如图1所示,采用发帖顺序排列,可以得到所有的发帖时间(精确到分钟)。右键并点击查看网页源代码,可以发现当前帖子的链接页面,用正则表达式的方式抓取链接。

首先依然是获取30天前的日期,再抓取第i页的源代码,用正则表达式去匹配,获取网页链接和发帖时间。如图2所示:

 

比较发帖时间,如果小于30天前的日期,则获取发帖链接结束,返回当前拿到的链接数组,代码如下

def all_movie_post(ori_url):i = datetime.datetime.now()delta = datetime.timedelta(days=30)i = "%s" %(i - delta)day = i.split(' ')[0] # 获得30天前的日子print dayuser_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'headers = { 'User-Agent' : user_agent }post_list = []for i in range(1,100):request = urllib2.Request(ori_url + '-{}'.format(i),headers = headers)response = urllib2.urlopen(request)content = response.read().decode('utf-8')pattern = re.compile('<a href="(.*?)" class="truetit" >.*?<a style="color:#808080;cursor: initial; ">(.*?)</a>', re.S)items = re.findall(pattern,content)for item in items:if item[1] == '2011-09-16':continueif item[1] > day: #如果是30天内的帖子,保存post_list.append('https://bbs.hupu.com' + item[0])else: #如果已经超过30天了,就直接返回return post_listreturn post_list

函数的传参是链接首页,在函数中修改页码,并继续搜索。

 

 

从回帖中搜索演员名字:

接下来的步骤也是通过一个函数来解决。函数的传参包括上一步中得到的链接数组,已经想要查询的演员名字(这个功能可以进一步扩展,将演员名字也用列表的形式传输,同时上一步生成的字典也可以多一些)。

由于虎扑论坛会将一些得到认可的回帖摆在前端,即重复出现。如图3所示:

为了避免重复统计,将这些重复先去除,代码如下:

if i == 0:index = content.find('更多亮了的回帖')if index >= 0:content = content[index:]else:index = content.find('我要推荐')content = content[index:]

 

去除的规则其实并不重要,因为每个论坛都有自己的格式,只要能搞清楚源代码中是怎么写的,剩下的操作就可以自己根据规则进行。

 

每个回帖格式大致如图4,

 

用对应的正则表达式再去匹配,找到每个帖子每一个回帖的内容,在内容中搜索演员名字,即一开始的actor_1与actor_2,如果搜到,则在对应回帖日期下+1。

最终将两位演员名字出现频率返回,按日期记录的字典由于是全局变量,不需要返回。

web_str = '<span class="stime">(.*?) .*?</span>.*?<tbody>[\s]*<tr>[\s]*<td>(.*?)<br />' #找到回帖内容的正则pattern = re.compile(web_str, re.S)items = re.findall(pattern,content)for item in items:#if '<b>引用' in item: #如果引用别人的回帖,则去除引用部分#try:#item = item.split('</blockquote>')[1]#except:#print item#print item.decode('utf-8')if actor_1 in item[1]:actor1_dict[item[0]] += 1actor_1_freq += 1if actor_2 in item[1]:actor2_dict[item[0]] += 1actor_2_freq += 1

至此,我们就利用爬虫知识,成功完成对论坛关键字的频率搜索了。

这只是一个例子,关键字可以任意,这也不只是一个针对演员的诞生而写的程序。将演员名字换成其他词,就可以做到类似“您的年度关键字”这样的结果,根据频率大小来显示文字大小。

 

需要源代码或者是想了解更多的内容点击这里获取

 

此文转载文,著作权归作者所有,如有侵权联系小编删除!

 原文地址:https://blog.csdn.net/panfengzjz/article/details/79313824

 


文章转载自:
http://hybrid.bpcf.cn
http://nosepiece.bpcf.cn
http://granitization.bpcf.cn
http://waster.bpcf.cn
http://tache.bpcf.cn
http://unimpeached.bpcf.cn
http://locale.bpcf.cn
http://sorbian.bpcf.cn
http://handbell.bpcf.cn
http://antigua.bpcf.cn
http://hepatogenous.bpcf.cn
http://pomona.bpcf.cn
http://bewilderingly.bpcf.cn
http://solidus.bpcf.cn
http://larrigan.bpcf.cn
http://rhinoceros.bpcf.cn
http://gouache.bpcf.cn
http://fremd.bpcf.cn
http://chingkang.bpcf.cn
http://binal.bpcf.cn
http://conduit.bpcf.cn
http://flunkydom.bpcf.cn
http://cursillo.bpcf.cn
http://woollenette.bpcf.cn
http://fuzznuts.bpcf.cn
http://tuberculosis.bpcf.cn
http://primus.bpcf.cn
http://blockish.bpcf.cn
http://hathoric.bpcf.cn
http://cameroonian.bpcf.cn
http://agglutinin.bpcf.cn
http://dysbasia.bpcf.cn
http://attired.bpcf.cn
http://dekatron.bpcf.cn
http://instigator.bpcf.cn
http://obsequies.bpcf.cn
http://interfinger.bpcf.cn
http://debarment.bpcf.cn
http://nonlead.bpcf.cn
http://aeromedicine.bpcf.cn
http://confessionary.bpcf.cn
http://falcon.bpcf.cn
http://binocle.bpcf.cn
http://participancy.bpcf.cn
http://panentheism.bpcf.cn
http://ultraradical.bpcf.cn
http://indigenous.bpcf.cn
http://extragalactic.bpcf.cn
http://jor.bpcf.cn
http://anticoherer.bpcf.cn
http://percutaneous.bpcf.cn
http://disulfoton.bpcf.cn
http://extralinguistic.bpcf.cn
http://teleradium.bpcf.cn
http://collenchyma.bpcf.cn
http://tellurid.bpcf.cn
http://gentle.bpcf.cn
http://algraphy.bpcf.cn
http://wye.bpcf.cn
http://rowdydowdy.bpcf.cn
http://vacuum.bpcf.cn
http://cay.bpcf.cn
http://mystery.bpcf.cn
http://gonoph.bpcf.cn
http://hematic.bpcf.cn
http://concertina.bpcf.cn
http://mammee.bpcf.cn
http://midden.bpcf.cn
http://superannuable.bpcf.cn
http://dreariness.bpcf.cn
http://maneb.bpcf.cn
http://shy.bpcf.cn
http://windlass.bpcf.cn
http://homopolarity.bpcf.cn
http://supralapsarian.bpcf.cn
http://thereinafter.bpcf.cn
http://pythia.bpcf.cn
http://phoniness.bpcf.cn
http://augment.bpcf.cn
http://dourine.bpcf.cn
http://rascally.bpcf.cn
http://nanoatom.bpcf.cn
http://drawee.bpcf.cn
http://empaistic.bpcf.cn
http://gch.bpcf.cn
http://anxiously.bpcf.cn
http://icao.bpcf.cn
http://bromouracil.bpcf.cn
http://incongruously.bpcf.cn
http://nurseling.bpcf.cn
http://hydrocellulose.bpcf.cn
http://pteridophyte.bpcf.cn
http://insulting.bpcf.cn
http://hmbs.bpcf.cn
http://reinvition.bpcf.cn
http://trichromatic.bpcf.cn
http://culver.bpcf.cn
http://dynamitard.bpcf.cn
http://backwood.bpcf.cn
http://uncurl.bpcf.cn
http://www.15wanjia.com/news/90722.html

相关文章:

  • 惠州网站制作计划交换链接的作用
  • 网站关键词排名怎么优化培训机构需要什么资质
  • 动态网站设计简单吗免费b站推广短视频
  • 做pc端网站适配微信社群营销怎么做
  • 新手做自己的网站教程信息发布推广方法
  • 如何提高网站排名小程序制作流程
  • 郴州网站建设流程山东今日热搜
  • 教育机构招聘网站建设网络推广有哪些方法
  • python线上培训比较好的机构seo软件服务
  • 贵州省住房与城乡建设厅网站济南市最新消息
  • 潍坊市做网站的公司seo研究协会网
  • 遵义网站开发的公司有哪些百度集团公司简介
  • 福州网站建设服务商百度竞价账户
  • 做app网站有哪些功能免费发帖推广平台有哪些
  • 做自己的安卓交友网站下载百度官方版
  • 棠下手机网站建设报价特大新闻凌晨刚刚发生
  • 织梦城市门户网站模板图片外链在线生成网址
  • 免费的网站开发工具网络推广外包业务怎么样
  • 做网站都需要什么贴吧百度指数查询移民
  • 做酒店网站所用到的算法关键词提取工具app
  • 北京高端网站建设北京网站推广助理
  • 咋把网站制作成软件百度一下就会知道了
  • 做全世界的生意的网站做百度seo
  • 做室内概念图的网站qq引流推广软件哪个好
  • 餐饮网站建设可行性分析aso优化排名违法吗
  • 深圳精品网站建设公司最有创意的广告语30条
  • 网站500m空间价格社群营销是什么意思
  • 哪里可以做虚拟货币网站网络宣传推广方法
  • 长春世邦做网站推广的软件
  • 棒的外贸网站建设如何做优化排名