python爬去新浪微博_!如何通过python调用新浪微博的API来爬取数据

python抓取新浪微博,求教

爬手机端

可以参考的代码,

#-*-coding:utf8-*-

import smtplib

from email.mime.text import MIMEText

import requests

from lxml import etree

import os

import time

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

class mailhelper(object):

'''

这个类实现发送邮功能

'''

def __init__(self):

self.mail_host="smtp.xxxx.com" #设置服务

self.mail_user="xxxx" #用户名

self.mail_pass="xxxx" #密码

self.mail_postfix="xxxx.com" #发的后缀

def send_mail(self,to_list,sub,content):

me="xxoohelper" ""

msg = MIMEText(content,_subtype='plain',_charset='utf-8')

msg['Subject'] = sub

msg['From'] = me

msg['To'] = ";".join(to_list)

try:

server = smtplib.SMTP()

server.connect(self.mail_host)

server.login(self.mail_user,self.mail_pass)

server.sendmail(me, to_list, msg.as_string())

server.close()

return True

except Exception, e:

print str(e)

return False

class xxoohelper(object):

'''

这个类实现将爬取微博第一条内容

'''

def __init__(self):

self.url = '' #请输入准备抓取的微博地址

self.url_login = ''

self.new_url = self.url_login

def getSource(self):

html = requests.get(self.url).content

return html

def getData(self,html):

selector = etree.HTML(html)

password = selector.xpath('//input[@type="password"]/@name')[0]

vk = selector.xpath('//input[@name="vk"]/@value')[0]

action = selector.xpath('//form[@method="post"]/@action')[0]

self.new_url = self.url_login action

data = {

'mobile' : 'xxxxx@xxx.com',

password : 'xxxxxx',

'remember' : 'on',

'backURL' : '', #此处请修改为微博地址

'backTitle' : u'微博',

'tryCount' : '',

'vk' : vk,

'submit' : u'登录'

}

return data

def getContent(self,data):

newhtml = requests.post(self.new_url,data=data).content

new_selector = etree.HTML(newhtml)

content = new_selector.xpath('//span[@class="ctt"]')

newcontent = unicode(content[2].xpath('string(.)')).replace('http://','')

sendtime = new_selector.xpath('//span[@class="ct"]/text()')[0]

sendtext = newcontent sendtime

return sendtext

def tosave(self,text):

f= open('weibo.txt','a')

f.write(text '\n')

f.close()

def tocheck(self,data):

if not os.path.exists('weibo.txt'):

return True

else:

f = open('weibo.txt', 'r')

existweibo = f.readlines()

if data '\n' in existweibo:

return False

else:

return True

if __name__ == '__main__':

mailto_list=['xxxxx@qq.com'] #此处填写接收邮件的邮箱

helper = xxoohelper()

while True:

source = helper.getSource()

data = helper.getData(source)

content = helper.getContent(data)

if helper.tocheck(content):

if mailhelper().send_mail(mailto_list,u"女神更新啦",content):

print u"发送成功"

else:

print u"发送失败"

helper.tosave(content)

print content

else:

print u'pass'

time.sleep(30)

有没有python爬虫视频教程推荐

前几个月参加比赛我还自己写了一个,不过python现在也有现成的模块可以有,Google一下就可以了,写一个也不难

怎样用python爬新浪微博大V所有数据

先上结论,通过公开的api如果想爬到v的所有数据,需要满足以下两个条件:

1、在你的爬虫运行时,该大v的所有微博发布量没有超过回溯查询的上限,新浪是2000,twitter是3200。

2、爬虫程序必须不间断运行。

新浪微博的api基本完全照搬twitter,其中接口的参数特性与底层的NoSQL密不可分,建议先看点Nosql数据库的设计理念有助于更好的理解api设计。

一般来说,如果决定爬某个大v,第一步先试获取该用户的基本信息,中间会包含一条最新的status,记下其中的id号作为基准,命名为baseId。

接口中最重要的两个参数:

since_id:返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。

max_id:返回ID小于或等于max_id的微博,默认为0。

出于各种原因,获取statuses的接口,固定为按id降序排列(scan_index_forward=false),即最新的statuses返回在前。假设该微博第一天上线,就一个用户,发了一百条,id是1到100。而你在该用户发了第50条的时候开始运行的爬虫,即baseId=50。

如何通过python调用新浪微博的API来爬取数据

先上结论,公开的api如果想某大v的所有数据,需足以下两个条件:

1、在你的开始运行时,该大v的所有微博发布量没有超过回溯查询的上限,新浪是2000,twitter是3200。

2、爬虫程序必须不间断运行。

新浪微博的api基本完全照搬twitter,其中接口的参数特性与底层的NoSQL密不可分,建议先看点Nosql数据库的设计理念有助于更好的理解api设计。

一般来说,如果决定爬某个大v,第一步先试获取该用户的基本信息,中间会包含一条最新的status,记下其中的id号作为基准,命名为baseId。

接口中最重要的两个参数:

since_id:返回ID比since_id大的微博(即比since_id时间晚的微博),默认为0。

max_id:返回ID小于或等于max_id的微博,默认为0。

出于各种原因,获取statuses的接口,固定为按id降序排列(scan_index_forward=false),即最新的statuses返回在前。假设该微博第一天上线,就一个用户,发了一百条,id是1到100。而你在该用户发了第50条的时候开始运行的爬虫,即baseId=50。

求大神给个Python3.6 的爬虫详细的视频!

2018年全新Python3.6网络实战案例5章( 实战 框架 分)教程

链接: https://pan.baidu.com/s/12kE-DneOKgtc9Sxk03NGSQ Tiquma-->

https://www.fageka.com/i/VCuBCHh4338

如何用python爬取视频网站的数据

1.模拟客户端数据,分析http返回结清洗需要的数入库。

2.根据已有数据计算,实现增长率之类的数据计算。

3.实时性很难做,你当然可以不停的采数据回来,做个伪实时系统,但需要考虑这些网站是否做了客户端访问次数的限制,你需要考虑在采集器达到访问次数上限之前所采集的数据能否满足你的要求,否则就要被封IP了。

版权声明:本站所有文章皆为原创,欢迎转载或转发,请保留网站地址和作者信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值