YTCrawl, 快速YouTube视频viewcount历史爬虫

分享于 

5分钟阅读

GitHub

  繁體 雙語
A YouTube video history meta data crawler
  • 源代码名称:YTCrawl
  • 源代码网址:http://www.github.com/yuhonglin/YTCrawl
  • YTCrawl源代码文档
  • YTCrawl源代码下载
  • Git URL:
    git://www.github.com/yuhonglin/YTCrawl.git
    Git Clone代码到本地:
    git clone http://www.github.com/yuhonglin/YTCrawl
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/yuhonglin/YTCrawl
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    YouTube视频历史记录元数据爬虫( ytcrawl )

    作者:Honglin电子邮件:yuhonglin1986@gmail.com

    ytcrawl 是一个YouTube视频 viewcount ( 当可用时也可以抓取 subscribers/shares/watchtimes ) 历史爬虫。 在 2013中,YouTube发布了视频'历史日 viewcount ( 当 public 为时),请参见下面的图片)。 这些对于计算社会科学研究来说可能是宝贵的数据。 这个爬虫旨在帮助研究人员高效地下载数据。

    dailyViewcount.png

    警告警告

    由于爬虫需要更新 Cookies 等等,所以 single_crawl的首次运行速度可能会慢得多。

    引用

    这里爬虫首次在下列项目中使用

    Honglin Yu,Lexing和 Scott Sanner,微博驱动的YouTube文章: 在 Mutimedia 2014中出现的个别影响者

    基本功能

    • 有两种使用爬虫的方法: single_crawlbatch_crawl
    • 使用 batch_crawl 时,由于youtube服务器的限制,它可以访问每小时( 会遇到很多"配额超过"加速时出错)的36,000个视频。 下载的viewcounts的实际数量取决于'数据为 public ( 在以前的实验中超过 60%个) )的视频数量。
    • 它完全记录爬行状态。 很容易从断点中继续爬网。
    • 可以选择发送电子邮件给报告"错误"或者"作业完成"。

    用法

    • 将代码放在某个地方,将它的文件夹添加到 python 库路径,然后导入 Crawler,例如
    >>>import sys>>> sys.path.append('/path/to/ytcrawl')>>>from crawler import Crawler
    • 创建爬虫对象
    >>> c = Crawler()

    这里对象的配置在下面的3中解释。 开始爬

    • 单一爬网
    # crawl a single video by ID"OQSNhk5ICTI".# We can only crawl daily viewcount of this video>>>print c.single_crawl("OQSNhk5ICTI")
    {'numShare': [], 'numSubscriber': [], 'watchTime': [], 'uploadDate': datetime.date(2010, 1, 9), 'dailyViewcount': [16, 11, 2, 1, 0, ..., 4800, 4891, 4844, 5427, 5505, 5068, 4663]}
    • batch_crawl
    # crawl all the videos listed in the input file.# The crawled data and log files are stored in"/output/path".>>> c.batch_crawl("/path/to/videoID/file", "/output/path") 

    输入/输出格式

    • 用于 single_crawl
      • 输入:videoID
      • 输出:包含所有可能抓取的信息的字典
    • 用于 batch_crawl
      • 输入 videoID file: 输入文件中的每一行都是一个 videoID
      • 输出文件夹:
        • data 文件夹:包含来自使用"散列文件夹结构"的YouTube的xml响应。 抓取后可以提取信息。
        • key.done: 抓取它的信息的视频
        • key.disabled: 信息不是 public的视频( 不能抓取)
        • key.invalidrequest: 如果你收到大量错误,请在这里输入错误消息,请在 Github。 这些视频将在下次运行时重新抓取。
        • key.nostatyet: 视频没有统计信息: 因为视频是最新上传
        • key.quotalimit: 速度太快,超过了youtube的配额。 这些视频可以在下次运行时重新抓取。
        • key.private: 视频是 private 视频( 不能抓取)
        • key.notfound: videoID错误或者视频已经从YouTube中消失

    配置

    在爬网之前,应该配置以下参数

    c = Crawler()
    c._crawl_delay_time =1# set crawling delay to 1c._cookie_update_delay_time =1# set cookie updating delay to 1
    • _crawl_delay_time: 爬网( 以秒为单位)的时间延迟。 默认值:0.1,每秒请求 10次。
    • _cookie_update_delay_time: 更新 Cookies ( 以秒为单位)的时间延迟。 默认值:0.1

    从断点继续

    只要用同样参数重新运行爬虫,它就可以自动跳过已经爬行的视频。

    可选:电子邮件提醒

    许可证

    BSD 3子句


    VIEW  fast  视频  Youtube  历史  crawl  
    相关文章