获取新浪微博的内容是什么?怎么用爬虫来做?

优采云 发布时间: 2021-05-12 00:26

  获取新浪微博的内容是什么?怎么用爬虫来做?

  最近,新浪微博上有一个项目,其中一个要成为新浪微博的爬虫。尽管我急忙阅读了《 Python学习手册》和《 Python核心编程》,但是当我实际从事该项目时,我仍然一无所知。因此,我在Internet上找到了很多信息。获取新浪微博内容的方法大致有两种,一种是使用纯爬网程序,另一种是使用新浪提供的API。

  要使用该API,您需要先申请一个Sina开发帐户。这个过程有点复杂。最终目标是获得新浪的app_key和app_secret。通过指导用户进行授权,获取access_token,然后调用API。尽管新浪提供的API便于开发人员进行开发,但其局限性也很大。首先是必须授权用户。自从Sina界面升级以来,许多界面仅对授权用户有效,例如friends_timeline,user_timeline以及具有此类限制的许多其他界面。另外,access_token有一个所谓的有效期,对于开发人员来说是5年,而对于其他人,如果授权级别用于测试,则只有一天,通常是7天。有关详细信息,请参见官方网站介绍。换句话说,如果有效期到期,则重新授权很麻烦。除了这些,实际上,它还对接口访问的频率有限制。就我们的项目而言,由于要获取的微博信息与地理位置有关,因此使用API​​并不方便。尽管我花了很多时间研究API,但最终还是放弃了。

  最后,由于以下想法文章为我提供了帮助,我决定使用抓取工具来做到这一点:

  本文的作者文章使用JAVA语言,但他为我提供了一个很好的主意。他没有使用模拟登录,而是使用了代理IP,但是在最新的文章中,他还说,由于新浪网已经升级,因此代理IP无法再使用,只能使用模拟登录。因此,我要感谢文章的以下作者:

  他帮助我解决了模拟登录的问题,主要是通过模拟登录来保存cookie,这将在以后介绍。

  当然,实际过程中仍然存在许多问题,例如需要通过正则表达式解析html。作弊新浪微博的网页源代码的源代码中的文本以utf-8的形式出现,即以'\ u4f60 \ u7684'的形式出现,这在查看时非常麻烦,并且使人一次失去对自己情绪的控制。具体的分析方法将在下一篇文章中介绍,同时将给出源代码。

  顺便说一下,我的编译环境:Linux,Python 2. 7版本。所有源代码都在此环境中经过测试。如果您使用其他系统或Python 3. X版本,请自行进行修改。 。

  这是v1版本,以后可能会进行修改,或者制作图形界面。 。

  不可避免的是第一批产品存在缺陷,欢迎提出意见。

  文件不多,Main.py:主文件; Matcher.py:解析html; WeiboLogin.py,WeiboEncode.py,WeiboSearch.py​​:用于模拟登录;还有一个用于存储用户名和密码的用户列表文件,这是为了防止新浪的反爬虫功能,我将在稍后介绍(但并不完美)

  主要功能(Main.py):

<p>#!/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/'

    para=raw_input('请输入搜索内容:\n')

    page=1

    userlists=open('userlists').readlines()

    reg1=re.compile(r'\\u4f60\\u7684\\u884c\\u4e3a\\u6709\\u4e9b\\u5f02\\u5e38\\uff0c\\u8bf7\\u8f93\\u5165\\u9a8c\\u8bc1\\u7801\\uff1a')    #你的行为有些异常,请输入验证码

    reg2=re.compile(r'\\u62b1\\u6b49\\uff0c\\u672a\\u627e\\u5230')#抱歉,未找到搜索结果

    for userlist in userlists:

        username=userlist.split()[0]

        password=userlist.split()[1]

        weibologin=WeiboLogin(username,password)

        if weibologin.Login()==True:

            print '登录成功'

            user=True    #帐号可用

        while page

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线