博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单的新浪微博爬虫-Python版-(下载部分)---(上)
阅读量:5089 次
发布时间:2019-06-13

本文共 2136 字,大约阅读时间需要 7 分钟。

第一次写博客,mark一下。

以前没写过技术分享博客也是因为没什么好分享的,现在觉得有些经验和思考过程还是值得记录下来的;一则便于以后查阅,二则如果能给别人带来些许帮助,则无比幸甚。

这次是因为工作需要做一些市场声量的分析,需要爬取一些论坛内容,微博内容做数据分析,懒得找其他盈利性的网站购买,就自己研究了一下Python 爬虫,写出来一个小小的爬虫

爬虫主要分两大部分:

1,下载网页功能(就是把网页内容以html格式保存在txt文 本中)

2,从保存文本中解析出想要的内容(主要是用到BeautifulSoup,用过的都说好!新手提示:注意大小写!)

 

其它:其实爬虫的主要功能实现还是很简单的,因为主要任务不在获取数据上,对爬虫的学习只是一个入门,这里只是想要分享一下经验,代码。

主要是图个方便,代码很丑,不要笑话

-------------------------------------------------------------------

下面是爬虫的下载网页功能的代码:

简单解释一下工作原理:获取需要下载的url(一般我都是按照规则生成的)-->发起请求(带上cookies)-->保存返回的数据到指定目录下

#-*-coding;utf-8-*-import requests,re,time,datetimefrom bs4 import BeautifulSoupcook={"Cookie":"#your cookies#"}def main_load(url,sleeptime):  #主下载函数    time.sleep(sleeptime)    try:        html=requests.get(url,cookies=cook).content  #获得请求结果        path='D:\\weibo\\movie\\cyx+dy'              #保存下载内容到你指定的文件目录        name=re.findall(r'(?<=keyword=).*',url)[0]   #截取url的一部分作为文件名        filename=path+'\\'+name+'.txt'        r=open(filename,'w')        r.write(html)        r.close()        return True    except:        return Falsedef auto_get(url,main_load,shleeptime=3):          #如果请求不成功就等待一段时间,再次发起请求    while not main_load(url,shleeptime):        if shleeptime>20:            break        shleeptime += 5        print 'enlarge sleep time:'+str(shleeptime)            for i in range(1,4):                               #在网页中搜索结果,获得一个链接url,替换下面这个url,让    #url='ime=20150101&endtime=20160501&sort=time&page='+str(i)    url1='http://weibo.cn/search/mblog?hideSearchFrame=&keyword=%E9%AA%91%E8%A1%8C+%E7%88%B1%E6%83%85+%E5%85%AC%E8%B7%AF&advancedfilter=1&starttime=20150101&endtime=20160530&sort=time&page=1'    print auto_get(url,main_load,shleeptime=3)

  几点说明:

1,我使用的验证方式是cookie,所以要使用这个爬虫程序必须获得自己的cookies,最开始我是想模拟登陆的,后来弄不起来就放弃了,直接用cookies省事。cookie可以在ie浏览器的临时文件夹中找到,有点坑。我是直接从

2,新浪微博wap端的搜索结果页面是有规则的,基本就是“固定开头+keyword+开始时间+结束时间+页数“的格式,本来这个过程是可以通过参数传递在请求中实现的,我太懒了。简单点就自己点下高级搜索,选好时间关键字,搜索出结果选下一页,在浏览器地址栏就能看见通用的地址格式了。其实只要换一下keyword就行了,中间那串“%E9%AA%91%E8“其实就是搜索关键字。

 

这个爬虫很丑,但是基本满足我自己的需求了。

后续:新浪微博wap只返回搜索的前100页,大概只有1000条结果,所以如果搜索内容太多后面的部分就没法获取了。我的解决办法就是缩短搜索日期,比如按月搜索。

 

 

 

 

转载于:https://www.cnblogs.com/nerverbesad/p/5543652.html

你可能感兴趣的文章