twitter 爬虫学习记录

学习数据获取的时候,看了很多的帖子,但是自己还未成功,现在根据师姐的指导,记录下自己的学习过程,避免忘记。

1.在Twitter上新建应用

网址:https://apps.twitter.com/app/new
这里写图片描述
创建好之后的网址(记录下,自己总是创建完就找不到了):https://apps.twitter.com/app/15264546

创建好了就可以获取应用的信息,包括Consumer key和Consumer secret。并generate access token,将这四个数据保存下来。

根据师姐的建议,依据她的博客来复现一下twitter爬虫过程。
————

2.Twitter本地项目的搭建

接下来可以借助twitter api 进行twitter 抓取,现有的twitter api的python版本很多,这里主要介绍tweepy 以及python-twitter。

在cmd中,通过pip install tweepy/python-twitter的命令,进行库的安装。
(如果电脑上之前装过,但是版本过早,可以先pip uninstall **在重新安装)
代码片段:

import twitter
import optparse
import sys


def print_safe(string):
    """
    Format a string for safe printing
    """
    return string.encode('cp437', 'xmlcharrefreplace')


def print_tweet(tweet):
    """
    Format and print `tweet`.
    """
    print("@" + print_safe(tweet.GetUser().GetScreenName()) + \
    ": " + print_safe(tweet.GetText()))


def search(search_term):
    """
    Print recent tweets containing `search_term`.
    """
    api = twitter.Api()
    tweets = api.GetSearch(search_term)
    for tweet in tweets:
        print_tweet(tweet)


def trending_topics():
    """
    Print the currently trending topics.
    """
    api = twitter.Api()
    trending_topics = api.GetTrendsCurrent()
    for topic in trending_topics:
        print
        print_safe(topic.name)


def user_tweets(username):
    """
    Print recent tweets by `username`.
    """
    api = twitter.Api()
    user_tweets = api.GetUserTimeline(screen_name=username)
    for tweet in user_tweets:
        print_tweet(tweet)


def trending_tweets():
    """
    Print tweets for all the trending topics.
    """
    api = twitter.Api()

    trending_topics = api.GetTrendsCurrent()
    tweets = []
    # To add some variety, let's round-robin through the trending
    # topics, displaying a tweet from each until we run out of tweets.
    for topic in trending_topics:
        tweets.append((topic, api.GetSearch(topic.name)))

    while True:
        for topic, topic_tweets in tweets:
            if topic_tweets:
                print_tweet(topic_tweets.pop())
            else:
                return


def main(args):
    parser = optparse.OptionParser("""Usage: %prog [-s <search term> | -t | -u <username>]""")

    parser.add_option("-s", "--search",
                      type="string",
                      action="store",
                      dest="search_term",
                      default=None,
                      help="Display tweets containing a particular string.")
    parser.add_option("-t", "--trending-topics",
                      action="store_true",
                      dest="trending_topics",
                      default=False,
                      help="Display the trending topics.")
    parser.add_option("-u", "--user",
                      type="string",
                      action="store",
                      dest="username",
                      default=None,
                      help="Display tweets for a particular public user.")
    parser.add_option("-w", "--trending-tweets",
                      action="store_true",
                      dest="trending_tweets",
                      default=None,
                      help="Display the tweets from trending topics.")

    (opts, args) = parser.parse_args(args)

    if opts.search_term:
        search(opts.search_term)
    elif opts.trending_topics:
        trending_topics()
    elif opts.username:
        user_tweets(opts.username)
    elif opts.trending_tweets:
        trending_tweets()


if __name__ == "__main__":
    main(sys.argv[1:])

3.代码学习

(1)optparse模块的使用
optparse模块主要用来为脚本传递命令参数,采用预先定义好的选项来解析命令行参数。
首先需要引入optparser模块,然后执行初始化,实例化一个OptionParser对象(可以带参,也可以不带参数),再为命令行添加选项,示例:

from optparse import OptionParser  
usage="show something usefull  
-- for example: how to use this program"  
parser = OptionParser(usage) #带参的话会把参数变量的内容作为帮助信息输出  
parser.add_option("-f","--file",dest="filename",help="read picture from File",metavar="FILE",action = "store",type="string")  
parser.add_option("-s","--save",dest="save_mold",help="save image to file or not",default = True)  
(options,args)=parser.parse_args()  
print options.filename  
print options.save_mold 

各个参数的含义:

  • dest:用于保存输入的临时变量,其值通过options的属性进行访问,存储的内容是-f或 –file之后输入的参数
  • type: 用于检查命令行参数传入的参数的数据类型是否符合要求,有string,int,float等类型
  • action: 用于指导程序在遇到命令行参数时候该如何处理,有三种值可选: store,store_false和store_true,默认值是store
  • store:读取参数,如果参数类型符合type的要求,则将参数值传递给dest变量,作为options的一个属性供使用。
  • store_true/store_false: 一般作为一个标记使用,分别设置dest变量的值为True和False
  • metavar:占位字符串,用于在输出帮助信息时,代替当前命令选项的附加参数的值进行输出,只在帮助信息里有用,注意其和default的区别
  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Twitter爬虫是一种用于从Twitter社交媒体平台上收集和提取信息的程序。它可以自动化地搜索和抓取特定的推文、用户信息、主题趋势等内容,以供进一步的分析和应用。以下是关于Twitter爬虫的一些重要信息。 首先,Twitter爬虫的目的是为了获取有关特定事件、话题或用户的数据。它可以根据关键字、用户名、特定时间段等条件进行搜索和抓取。通过提供合适的参数和筛选规则,用户可以有效地收集到所需的信息。 其次,Twitter爬虫使用API来与Twitter平台进行通信。API是一组提供数据和功能的接口,允许开发者构建自定义应用程序。Twitter的API提供了获取推文、用户信息、趋势话题等数据的功能。爬虫可以通过API请求数据,并使用解析工具来提取和处理所需的信息。 此外,使用Twitter爬虫需要一些技术知识和编程能力。开发者需要了解编程语言(如Python),以及相关的库和工具(如Tweepy)。Tweepy是一个在Python中使用Twitter API的库,可以大大简化爬虫的开发过程。 然而,使用Twitter爬虫也需要遵守一些规则和限制。Twitter有一些使用限制,包括每15分钟最多请求150次数据、在某些情况下需要身份验证等。在开发和使用爬虫时,必须遵守这些限制,以避免违反Twitter的使用政策。 总之,Twitter爬虫是一种方便获取Twitter数据的工具。它可以帮助用户从海量的推文和用户信息中提取有价值的数据,并用于各种分析和应用领域。尽管使用爬虫时需要遵守一些规则和限制,但它仍然是一个强大而实用的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值