请输入标题 bcdef 这几天应一位工大师兄要求写关于股票评论的爬虫,进而能对评论文本进行分析,发现投资价值。 这个任务很有现实应用价值,我也很感兴趣,一开始觉得这多简单 啊。 爬虫会写,文本也会分析,那一组装不就完事了嘛。于是很爽快同意了,结果忙活了将近一周,最后在最开始的爬数据这关卡住了。雪球网太敏感了,我发送几十次请求就被封,这可咋整!!! 这网站太难爬了,这也证明自己水平还是没到,对于反扒措施严密的网站,大邓无能为力。还是先精耕细作,提高自己的能力,毕竟学python连一年还没到。 请输入标题 abcdefg 任务说明 请输入标题 bcdef 爬取对象:雪球网 要求:同时对多只股票当天的评论进行抓取 分析难点: 1、要同时对多只股票评论界面进行访问,要用到多进程。 2、并发访问(同时一个网站多个网址进行访问),容易被封,需要使用代理IP 请输入标题 abcdefg 雪球网址分析 请输入标题 bcdef 打开一只股票(如“格力电器”)的网址, https://xueqiu.com/S/SZ000651 打开评论界面 我们知道,像金融领域网站一般都是很有价值的,那么他们的网站肯定是爬虫重点的访问对象。网站肯定不简单,很大的可能性是动态网页。 打开开发者工具,审查翻页时候的请求信息, (看下图)发现 网页上某评论 与 访问可疑网址时返回的信息对应起来,说明可疑网址就是我们想要找到网址信息。 网址在下图 https://xueqiu.com/statuses/search.json?count=10&comment=0&symbol=SZ000651&hl=0&source=user&sort=time&page=2&_=1490931772156 所以我们只要改变symbol和page就可以对不同股票的不同评论页面进行访问 请输入标题 abcdefg 初始代码 请输入标题 bcdef 对一个股票的访问请求成功了,那么下面我们要构造一个雪球类,里面有访问单个股票的方法,也有多进程访问多只股票的方法。 多进程 使用多进程,实现同时对多只股票的访问,这里用到mutiprocessing库。 python中的多线程貌似没啥用,我这里就用了多进程。其实多进程多线程都是为了提高效率,不必要太较真到底用多线程还是多进程,会用就好,以后再深究哪个效率高。 这里我其实也不太懂,我只是代码的搬运工,从网上找了些代码依次试了试。 我们构造好一个爬数据的函数后(比如我这里第一个函数是GetData),将该函数代入到多进程代码中 上述代码实现同时对多个股票评论页面进行抓取。 运行一下 如何使用代理 请输入标题 bcdef 上面的代码访问多了,还是会被封,所以今天我特意在这个网站上花了9元买了一天的代理 http://www./ 点击生成api 可以先提取看看访问这个api返回的是什么 我们只需要写一个访问该api的函数,返回20个代理ip。 增加代理,访问该股票依旧能获得评论数据,说明代理正常运行。如下图 ![]() 但是等自己大规模运行后,你看到的是这样的图,此刻大邓内心是崩溃的。这雪球网忒难对付!!! 更多内容 大数据 爬虫 【视频】有了selenium,小白也可以自豪的说:“去TMD的抓包、cookie” 【视频】快来get新技能--抓包+cookie,爬微博不再是梦 文本分析 神奇的python 由于篇幅限制, 想看更多代码可回复“雪球网”,即可获得项目的网盘资源 请输入标题 abcdefg |
|