如何爬数据库 如何爬数据

本篇文章给大家谈谈如何爬数据,以及如何爬数据库对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔 。
爬虫怎么爬数据很简单,2-3 个月我就学会了,用一个专门的爬虫框架,就3个步骤,核心是第二步:
定义item类
开发spider类
开发pipeline
详细内容可看《疯狂Python讲义》

如何爬数据库 如何爬数据

文章插图
如何“爬数据”简单笼统的说,爬数据搞定以下几个部分,就可以小打小闹一下了 。
一、指定URL的模式,比如知乎问题的URL为,然后抓取html的内容就可以了 。用的工具,如果你正则很好,可以用正则,觉得正则费脑子的,可以用html解析DOM节点来处理内容 。如果你抓取的内容有其固有特点,如新闻内容,可以用正文抓取算法,其实就是找html中最长的几行字符串 。
二、用javascript动态生成内容的抓取,不建议使用headless,效率比较低下,建议使用一些开源的库去直接执行js代码,获得你想要的结果 。
了解页面里的程序逻辑是很重要的,知道动态内容是怎么生成的,使用一定的方法,一样会像拿html一样,很容易的拿到你想要的结果 。动态生成要么是本地执行计算,要么是从服务器另发起请求获得一定的结果,显示或再进行本地计算 。对前者,你要找到他本地执行的那段代码,原样拿过来,在javascript环境执行一遍拿到结果 。对后者,找到那个请求,获得对应的结果,一般这个结果也会是javascript代码或者json格式的字符串,重新解析即可 。
三、登录,有很多数据你是需要登录后才能查看的 。如果对方使用https,基本就无解了 。好在很多国内标榜全站使用https的网站都是伪https,抓包一样全都可以抓到,比较复杂的会将用户名或密码进行二次加密,并且和时间相关,直接提交用户名密码是无效的,必须同时提交以当前时间为参数进行二次加密后的结果,还是那句话,了解页面里的程序逻辑是很重要的 。
四、验证码,你抓取过多过快时,网站一般会要求你输入验证码证明你不是程序,是人工在操作,似乎国内有帮你输入验证码的云服务,来搞定这部分,或者用程序解析验证码,但错误率太高 。还有一种比较无赖的方法就是使用多条ADSL或VPN,来回切换IP,不断换IP进行抓取,把单IP抓取速度控制在网站允许的范围内,另外什么换header头里的agent啥的比较简单,就不多说了 。
五、内容图片化,一些敏感信息,如商城里的价格,分类网站里的用户手机号,会被网站直接用图片的方式进行显示 。这里你使用云服务成本太高,使用程序解析图片,如果出错,这条信息基本就没用了,切换IP也一样是图片,所以基本也是无解的 。
六、补充,爬虫还有很多细节和针对性的处理方法,出于学习的目的,要多思考,比如移动互联网这么火热,很多网站,有点实力的都会出移动客户端,在移动客户端内,他还是使用图片显示吗?现在html5出来了,很多移动客户端都是html+js进行再封装处理的 。
从网站抓取数据的3种最佳方法1.使用网站API
许多大型社交媒体网站,例如Facebook,Twitter,Instagram,StackOverflow,都提供API供用户访问其数据 。有时,您可以选择官方API来获取结构化数据 。如下面的Facebook Graph API所示,您需要选择进行查询的字段,然后订购数据,执行URL查找,发出请求等 。
2.建立自己的搜寻器
但是,并非所有网站都为用户提供API 。某些网站由于技术限制或其他原因拒绝提供任何公共API 。有人可能会提出RSS提要,但是由于限制了它们的使用,因此我不会对此提出建议或发表评论 。在这种情况下,我想讨论的是我们可以自行构建爬虫来处理这种情况 。