基于scrapy实现爬取投资社区雪球网的来自用户的讨论数据(一)

这个项目是一个基于 Python scrapy 的爬虫项目,截至到目前(2015年05月24日),初衷是希望能够爬取 www.xueqiu.com 中的某个给定的股票的页面下 -- 比如‘融创中国’的 -- 所有的来自用户的讨论(至于后续的功能再说,肯定是希望用更多的数据然后基于文本挖掘和情感分析来预测股价)。

以下是目前的调研结论:

以‘融创中国’这只股票为例,股票代号是01918,所以它的页面是 http://xueqiu.com/s/01918 ,这个页面中展示了来自用户的所有关于‘融创中国’这只股票的讨论。

但是这些来自用户的讨论并不直接包含在该url的html页面中,而是该页面中的javascript代码以Ajax的方式 -- 即异步的http get请求 -- 获取来的,此请求的URL是 http://xueqiu.com/statuses/search.json ,此外在url中还有几个query string,用来指定相关的股票代码、想要多少条讨论、以及想要的是第几页的讨论等等。

如果直接通过传统的get请求该search.json且附加相同的query string,也能够获取到json数据 -- 包含了所需要的来自用户的讨论 -- 但前提是:get请求中要有登陆雪球之后雪球返回的cookie信息,否则雪球会拒绝该请求。

因此这个scrapy爬虫,第一阶段打算这样实现:

先人工的登陆 xueqiu.com , 且通过浏览器的开发者工具的‘网络’工具监控到登陆成功后雪球站点发回来的cookie数据。

爬虫的start url设置为 http://xueqiu.com/statuses/search.json另加上query string,并且设法告诉scrapy所需要的cookie,以此构造初始的请求,

在得到的response中能够解析到这只股票的来自用户的讨论的第一页的数据。

这里附加更多调研过程中的细节

1,在发现xueqiu.com/s/01918的html中并没有直接包含了用户的讨论数据以后,通过看javascript代码,发现了雪球的前端使用了backbone库,其来自用户的讨论的数据是在SNB.Collections.Statuses -- 可能有个别字符记错了,不核对了 -- 其前端在构造该collection实例的时候将来自用户的讨论作为参数传给构造函数,每一条讨论是一个javascript object对象,一般是15条讨论也就是一个包含了15个object的javascript array。而这个array的数据就是通过Ajax调用请求前文提到的search.json得到的。

2,通过浏览器的开发者工具中的‘网络’工具,监控所有的http请求,的确能够找到对应的发给search.json的请求,且其响应正是所有的讨论数据

时间: 2024-10-05 13:32:03

基于scrapy实现爬取投资社区雪球网的来自用户的讨论数据(一)的相关文章

爬虫07 /scrapy图片爬取、中间件、selenium在scrapy中的应用、CrawlSpider、分布式、增量式

目录 爬虫07 /scrapy图片爬取.中间件.selenium在scrapy中的应用.CrawlSpider.分布式.增量式 1. scrapy图片的爬取/基于管道类实现 2. 中间件的使用 3. selenium在scrapy中的应用 4. CrawlSpider 5. 分布式 5. 增量式 爬虫07 /scrapy图片爬取.中间件.selenium在scrapy中的应用.CrawlSpider.分布式.增量式 1. scrapy图片的爬取/基于管道类实现 爬取流程: 爬虫类中将解析到的图片

selenium+scrapy完成爬取特定的知乎界面,比如我爬取的就是搜索“”“某某某东西”

这个地方非常感谢此篇作者的帮助 :http://blog.csdn.net/uselym/article/details/52525025 一.建立一个scrapy框架的爬虫 二.在spider中首先构造登录 二.使用response构造需要获取到的数据 三.在parse函数中返回request请求. 四.在scrapy.Request()中指定url="你需要爬取的界面" 总结:对于知乎的动态界面,scrapy爬虫爬取始终没有selenium模拟上下滑动获取的比较完整,望注意. 原文

Scrapy将爬取的段落整合为字符串

使用Scrapy框架爬取文章的时候,经常会遇到要爬取多个段落的问题,如果这个时候使用的是: text = response.xpath("......").extract() 那么会发现爬取下来的文章是以段落为单位的list,不方便直接展示. 这个时候可以将list转化为字符串,具体语法如下: content='\n'.join(text) 这样就可以把段落用换行符分割开来,方便直接展示. 原文地址:https://www.cnblogs.com/EdenChanIy/p/993647

03_使用scrapy框架爬取豆瓣电影TOP250

前言: 本次项目是使用scrapy框架,爬取豆瓣电影TOP250的相关信息.其中涉及到代理IP,随机UA代理,最后将得到的数据保存到mongoDB中.本次爬取的内容实则不难.主要是熟悉scrapy相关命令以及理解框架各部分的作用. 1.本次目标 爬取豆瓣电影TOP250的信息,将得到的数据保存到mongoDB中. 2.准备工作 需要安装好scrapy以及mongoDB,安装步骤这里不做赘述.(这里最好是先了解scrapy框架各个部分的基本作用和基础知识,这样方便后面的内容的理解.scrapy文档

如何提高scrapy的爬取效率

提高scrapy的爬取效率 增加并发: 默认scrapy开启的并发线程为32个,可以适当进行增加.在settings配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100. 降低日志级别: 在运行scrapy时,会有大量日志信息的输出,为了减少CPU的使用率.可以设置log输出信息为INFO或者ERROR即可.在配置文件中编写:LOG_LEVEL = ‘INFO’ 禁止cookie: 如果不是真的需要cookie,则在scrapy爬取数据时可以进制coo

分布式爬虫系统设计、实现与实战:爬取京东、苏宁易购全网手机商品数据+MySQL、HBase存储

[TOC] 1 概述 在不用爬虫框架的情况,经过多方学习,尝试实现了一个分布式爬虫系统,并且可以将数据保存到不同地方,类似MySQL.HBase等. 基于面向接口的编码思想来开发,因此这个系统具有一定的扩展性,有兴趣的朋友直接看一下代码,就能理解其设计思想,虽然代码目前来说很多地方还是比较紧耦合,但只要花些时间和精力,很多都是可抽取出来并且可配置化的. 因为时间的关系,我只写了京东和苏宁易购两个网站的爬虫,但是完全可以实现不同网站爬虫的随机调度,基于其代码结构,再写国美.天猫等的商品爬取,难度不

基于python的scrapy框架爬取豆瓣电影及其可视化

1.Scrapy框架介绍 主要介绍,spiders,engine,scheduler,downloader,Item pipeline scrapy常见命令如下: 对应在scrapy文件中有,自己增加爬虫文件,系统生成items,pipelines,setting的配置文件就这些. items写需要爬取的属性名,pipelines写一些数据流操作,写入文件,还是导入数据库中.主要爬虫文件写domain,属性名的xpath,在每页添加属性对应的信息等. movieRank = scrapy.Fie

scrapy框架爬取豆瓣读书(1)

1.scrapy框架 Scrapy,Python开发的一个快速.高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改.它也提供了多种类型爬虫的基类,如BaseSpider.sitemap爬虫等,最新版本又提供了web2.0爬虫的支持. 主要组件: 2.快速开始 scrapy startproject douban cd到douban根目录

爬取知名社区技术文章_分析_1

软件运行环境是什么? python 3.50                                      -- 解释器 scrapy库                                         -- 爬虫框架 pymsql库                                         -- 连接mysql数据库 pillow库                                           -- 下载图片 目标网站是什么