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

WordPress一键开启全站SSL江西威乐建设集团有限公司企业网站

WordPress一键开启全站SSL,江西威乐建设集团有限公司企业网站,计算机网络培训速成班,新闻资讯建站服务商最近手头上有一个项目#xff0c;是关于新浪微博的#xff0c;其中有一环要做新浪微博的爬虫。虽然之前把《Python学习手册》和《Python核心编程》都囫囵吞栆地通读完了#xff0c;不过真正到做项目的时候还是什么都不会。于是在网上找了大量的资料。关于获取新浪微博的内容…最近手头上有一个项目是关于新浪微博的其中有一环要做新浪微博的爬虫。虽然之前把《Python学习手册》和《Python核心编程》都囫囵吞栆地通读完了不过真正到做项目的时候还是什么都不会。于是在网上找了大量的资料。关于获取新浪微博的内容大致有两种方法一种是用纯爬虫还有一种是用新浪提供的API。 使用API的话需要先申请一个新浪的开发帐号这个过程有一点复杂最终目的是获得新浪的app_key和app_secret。通过引导用户授权获得access_token再调用API。虽然新浪提供的API便于开发者开发不过其限制也是很大的。首先就是用户必须授权自从新浪接口升级后很多接口只有对授权的用户使用才有效像friends_timelineuser_timeline这些获取用户微博的还有很多其他的接口都有这样的限制。除此以外access_token有所谓的有效期开发者为5年而其他人的话如果授权级别是测试则只有一天普通则是7天具体可看官网介绍。也就是说超过有效期的话就要重新授权挺麻烦的。除了这些外其实它对接口访问的频次也是有限制的。就我们这个项目而言因为要获取的微博信息与地理位置有关用API的话不太方便。虽然我花了不少时间研究API不过最终还是放弃了。 最后我决定使用爬虫来做感谢以下文章给我提供的思路 http://blog.csdn.net/codingmirai/article/details/17754645 这篇文章的作者用的是JAVA语言不过他给我提供了一个很好的想法。他并未用到模拟登录用的是代理IP不过在最新的文章中他也说到新浪因为进行了升级所以代理IP不能用了只能进行模拟登录。于是我又要感谢以下文章的作者 http://www.jb51.net/article/44779.htm 他帮我解决了模拟登录的问题主要是通过模拟登录来保存cookies这我在之后会介绍。 当然在实际做的过程中还是有不少问题的像是要通过正则表达式来解析html坑爹的新浪微博的网页源码中文字是以utf-8的形式出现的也就是像‘\u4f60\u7684‘的形式出现的看的时候麻烦的不得了一度让人情绪失控。具体解析方法我会在之后的文中介绍同时给出源代码。 顺便说一下本人的编译环境LinuxPython 2.7版本。一切的源代码都是在这个环境中测试的如有不同的系统或是Python3.X版本的请自行修改。。。 这是v1版本之后可能会进行修改也可能会做图形化界面。。。 第一次制作难免有不足之处欢迎提出意见。。 文件不多Main.py主文件Matcher.py解析htmlWeiboLogin.py,WeiboEncode.py,WeiboSearch.py用于模拟登录还有一个userlists文件存放用户名和密码这是为了防止新浪的反爬虫功能之后我会介绍不过并不完美 主函数Main.py #!/usr/bin/env python #-*-coding:utf-8-*- from WeiboLogin import WeiboLogin import re import urllib2 import Matcher def main():     urlheader’http://s.weibo.com/weibo/’     pararaw_input(‘请输入搜索内容\n’)     page1     userlistsopen(‘userlists’).readlines()     reg1re.compile(r’\\u4f60\\u7684\\u884c\\u4e3a\\u6709\\u4e9b\\u5f02\\u5e38\\uff0c\\u8bf7\\u8f93\\u5165\\u9a8c\\u8bc1\\u7801\\uff1a’)    #你的行为有些异常请输入验证码     reg2re.compile(r’\\u62b1\\u6b49\\uff0c\\u672a\\u627e\\u5230′)#抱歉未找到搜索结果     for userlist in userlists:         usernameuserlist.split()[0]         passworduserlist.split()[1]         weibologinWeiboLogin(username,password)         if weibologin.Login()True:             print ‘登录成功’             userTrue    #帐号可用         while page50 and user:             urlurlheaderpara’page’str(page)             print ‘获取第%d页。。’ % page             furllib2.urlopen(url)             ###开始匹配网页内容###             for line in f:                 if re.search(r’pid”:”pl_weibo_direct”‘,line):    #匹配一定要准确                     if reg2.search(line):                         print ‘抱歉未找到结果。。。’                         return                     else:                             Matcher.matcher(line)                         page1                         break                 if re.search(r’pid”:”pl_common_sassfilter’,line):                     if reg1.search(line):                         print ‘此帐号被锁使用下一个帐号’                         userFalse    #帐号不可用 if __name__’__main__:     main() 首先爬取的微博是通过输入关键词搜索到的含指定关键字的微博也就是在http://s.weibo.com这个网站上搜索到的微博。上文的reg1匹配的是“你的行为有些异常请输入验证码”。在这里我要解释一下新浪微博反爬虫功能当一次性搜索过多页面时便会跳出这条信息极限大概是30多页然后便会被这样锁住。我也尝试过使用代理IP来做不过会显示登录次数过多致使无法登录的情况。因此我的办法便是使用多个帐号当某个帐号被锁住时便使用下一个之后再人工去解锁。这并不是一个好方法我也还在尝试其他方法如果有谁有好的方法可以提供给我。 reg2匹配的是没有找到含指定关键词的微博信息。 在网页源代码中含“pid”:”pl_weibo_direct”的一行就是搜索结果所有搜索到的微博都在这一行上之后只要针对这一行进行解析就可以了。如果某一行含有”pid”:”pl_common_sassfilter”则表示出现帐号被锁的情况。 模拟登录 关于这部分可以查看上文的链接或是本人的转载博文 http://liandesinian.blog.51cto.com/7737219/1549692对应此项目 解析网页内容Matcher.py #!/usr/bin/env python#-*-coding:utf-8-*- import reimport codecs def matcher(line):    regrem(.*?)\\/em.*?allowForward1url(.*?)’#先将微博内容全部匹配下来,含url    subr’color:red’#子串    regre.compile(reg)    reg2re.compile(‘.*?’)#去除其中的…    matsreg.findall(line)    if mats![]:        for mat in mats:            with codecs.open(‘result.txt’,’a’,encoding’utf-8′) as f:#写入utf-8文件                if mat[0].find(sub)!-1:#含有子串                    treg2.sub(”,mat[0])#剔除其中的…                    f.write(t.decode(‘unicode_escape’).replace(‘\\’,”)’\n’)#去除”\”                    f.write(u’单条微博信息’)                    f.write(mat[1].replace(‘\\’,”)’\n\n’) 微博内容在em和\/em之间。首先先将所有的微博内容匹配下来这里面可能包含转载微博而有些转载微博都是不含指定关键词的所以需要剔除。 基本上现在就是这样的当然还有很多不足之处尤其是如何应对新浪的反爬虫功能还需完善。。。 本文出自 “莲的思念” 博客请务必保留此出处http://liandesinian.blog.51cto.com/7737219/1549701 转载请注明「电脑玩物」中文网 » 新浪微博爬虫设计Python版
http://www.zqtcl.cn/news/566482/

相关文章:

  • 厦门网站建设合同wordpress的设置网址
  • 澎湃动力网站建设公司门户类网站建设需要多少钱
  • 祭祖网站怎么做咨询类网站开发的意义
  • 简书网站开发热门电影推荐
  • 中学教材数字化学习资源的建设——教材配套网站的设计及发展趋势建网站 发信息 做推广
  • 怎么写网站建设方案书制做网站的公司
  • 服务网站 建设原则游戏服务器租用多少钱一年
  • 软件网站下载现在出入深圳最新规定
  • 长宁专业网站制作公司陕西网站建设哪家专业
  • 重庆做的好的房产网站衡水的网站建设
  • 宜春网站开发网页编辑器安卓版
  • 网站建设外包兼职建设工程合同可以分为
  • 我国网络营销现状分析重庆网站seo营销模板
  • 深圳建站公司网站免费推广预期效果
  • html5 国外网站后台网站要做权限前端还是后台做
  • 免费建自己的网站网站标题 关键词 描述之间的关系
  • 提供响应式网站建设wordpress怎么做背景图片
  • 相亲网与做网站做网站的目的与意义
  • 做网站字体大小网站建设是属于虚拟产品吗
  • 网站的内链怎么做校园网建设网站特色
  • 优化网站标题企业的网站一般做哪些维护
  • 聊天网站备案南阳定制网站制作价格低
  • 广州镭拓科技网站建设公司长春招聘
  • 视频网站app怎么做跨境贸易电子商务服务平台
  • 丽水网站seo餐饮vi设计案例
  • 娄底网站建设报价山东省住房和建设厅注册中心网站
  • 公司网站建设工作重点网站建设吉金手指专业11
  • vue做前台网站怎么做钓鱼网站吗
  • 个人建设网站如何定位烟台h5网站开发
  • 广州网站定制多少钱html5游戏开发