scrapy初探(一)-斗鱼直播信息抓取

由于有相关需求,最近两天开始学了一下scrapy

这次我们就以爬取斗鱼直播间为例,我们准备爬取斗鱼所有的在线直播信息,

包括1.主播昵称 2.直播领域 3.所在页面数 4.直播观看人数 5.直播间url

开始准备爬取的页面如图

url为:https://www.douyu.com/directory/all

但实际经过查看发现翻页是由ajax响应的,实际的ajax页面为:

https://www.douyu.com/directory/all?page=1&isAjax=1

其中page即为页面数

我们所需要的信息也在页面中,所以直接爬取该页面即可,但是由于没有想到什么特别好的方法判断是否是最后一页,这里我们手动输入

先编辑items.py

class ProjectItem(scrapy.Item):
    title=scrapy.Field()
    user=scrapy.Field()
    num=scrapy.Field()
    area=scrapy.Field()
    zhibojian=scrapy.Field()
    index=scrapy.Field()

接着编写spider.py,其中思路比较简单,回调函数即为parse本身

def handlenum(char):
    if u‘万‘ in char[0]:
        char[0] = str(float(char[0].replace(u‘万‘, ‘‘)) * 10000)
    return char

class newspider(scrapy.Spider):
    name=‘ajax‘
    allowed_domains = ["www.douyu.com", ‘douyucdn.cn‘]
    start_urls = ["https://www.douyu.com/directory/all?page=1&isAjax=1"]
    box=[]

    def parse(self, response):
        global index,box
        selector=Selector(response)
        for sel in selector.xpath(‘/html/body/li‘):
            item=ProjectItem()
            item[‘title‘]=sel.xpath(‘a/@title‘).extract()
            item[‘user‘]=sel.xpath(‘a/div/p/span[1]/text()‘).extract()
            num=sel.xpath(‘a/div/p/span[2]/text()‘).extract()
            item[‘num‘] =handlenum(num)
            item[‘area‘]=sel.xpath(‘a/div/div/span/text()‘).extract()
            item[‘zhibojian‘]=sel.xpath(‘a/@href‘).extract()
            item[‘index‘]=index
            yield item
        if index is 80:
            return
        else:
            index+=1
            nexturl=‘https://www.douyu.com/directory/all?page=%s&isAjax=1‘%str(index)
            yield scrapy.Request(nexturl,callback=self.parse)

最后设置setting.py,这里我们使用csv格式来保存

FEED_URI=u‘file:///C:/Users/tLOMO/Desktop/one.csv‘
FEED_FORMAT=‘CSV‘

最后运行即可得到one.csv

进过统计,我程序跑的时候,所有观看直播的人数为18290373,这个数字可信度我也搞不清啊,简单看了一下,所有的直播中直播王者荣耀和英雄联盟的是最多的

时间: 2024-11-08 13:35:06

scrapy初探(一)-斗鱼直播信息抓取的相关文章

scrapy爬虫成长日记之将抓取内容写入mysql数据库

前面小试了一下scrapy抓取博客园的博客(您可在此查看scrapy爬虫成长日记之创建工程-抽取数据-保存为json格式的数据),但是前面抓取的数据时保存为json格式的文本文件中的.这很显然不满足我们日常的实际应用,接下来看下如何将抓取的内容保存在常见的mysql数据库中吧. 说明:所有的操作都是在“scrapy爬虫成长日记之创建工程-抽取数据-保存为json格式的数据”的基础上完成,如果您错过了这篇文章可以移步这里查看scrapy爬虫成长日记之创建工程-抽取数据-保存为json格式的数据 环

网易新闻页面信息抓取 -- htmlagilitypack搭配scrapysharp

最近在弄网页爬虫这方面的,上网看到关于htmlagilitypack搭配scrapysharp的文章,于是决定试一试~ 于是到https://www.nuget.org/packages/ScrapySharp去看看, 看到这句下载提示:To install ScrapySharp, run the following command in the Package Manager Console PM> Install-Package ScrapySharp 接下去我就去找package man

Atitit.web的自动化操作与信息抓取 attilax总结

Atitit.web的自动化操作与信息抓取 attilax总结 1. Web操作自动化工具,可以简单的划分为2大派系: 1.录制回放 2.手工编写0 U' z; D! s2 d/ Q! ^1 2. 常用的软件1 2.1. swt (ie com)  ,nativeswing2 2.2. 基于 selenium2 2.3. Imacro for firefox插件2 2.4. Zenno Poster2 2.5. Ubot在Zenno Poster出来以前应该是最火爆的Web自动化工具(BHW最常

scrapy框架【全栈/深度抓取】

五大核心组件 - 引擎(Scrapy) 用来处理整个系统的数据流处理, 触发事务(框架核心) - 调度器(Scheduler) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址 - 下载器(Downloader) 用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的) - 爬虫(Spiders) 爬虫

Java爬虫,信息抓取的实现

转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/23272657 今天公司有个需求,需要做一些指定网站查询后的数据的抓取,于是花了点时间写了个demo供演示使用. 思想很简单:就是通过Java访问的链接,然后拿到html字符串,然后就是解析链接等需要的数据. 技术上使用Jsoup方便页面的解析,当然Jsoup很方便,也很简单,一行代码就能知道怎么用了: [java] view plaincopy Document doc = J

(转)Java爬虫,信息抓取的实现

转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/23272657 今天公司有个需求,需要做一些指定网站查询后的数据的抓取,于是花了点时间写了个demo供演示使用. 思想很简单:就是通过Java访问的链接,然后拿到html字符串,然后就是解析链接等需要的数据. 技术上使用Jsoup方便页面的解析,当然Jsoup很方便,也很简单,一行代码就能知道怎么用了: [java] view plaincopyprint? Document d

Java爬虫,信息抓取的实现(转)

转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/23272657 今天公司有个需求,需要做一些指定网站查询后的数据的抓取,于是花了点时间写了个demo供演示使用. 思想很简单:就是通过Java访问的链接,然后拿到html字符串,然后就是解析链接等需要的数据. 技术上使用Jsoup方便页面的解析,当然Jsoup很方便,也很简单,一行代码就能知道怎么用了: [java] view plaincopyprint? Document d

Windows Phone & Windows App应用程序崩溃crash信息抓取方法

最近有用户反馈,应用有崩溃的情况,可是本地调试却无法重现问题,理所当然的,我想到了微软的开发者仪表盘,可以查看一段时间内的carsh记录,不过仪表盘生成carsh记录不是实时的,而且生成的报告查看非常不便,是否有其他方法抓取应用的崩溃记录呢? 其实目前已经有一些第三方提供了相应的工具插件,如国外的uTest(http://www.utest.com/),mtiks(http://www.mtiks.com/),国内的九幽(http://www.windows.sc)等等,小弟英语比较烂,就只研究

python 页面信息抓取

1. 特点 在python 解析html这篇文章中已经做了初步的介绍,接下来再坐进一步的说明.python抓取页面信息有以下两个特点: 依赖于HTML的架构. 微小的变化可能会导致抓取失败,这取决于你编码的技巧. 2. 抓取示例 首先看一下百度视频网页的源代码,大致浏览下,选定要抓取的网页元素. 假设我们要对div标签id为focusCarouselList里的相关内容进行提取.首先进入python命令行环境,先按照以下代码打开网页并读取内容. >>> >>> impo