当前位置: 首页 > 科技观察

啃完Python的基础,还要做这个

时间:2023-03-22 13:13:12 科技观察

入门爬虫后,我们有两条路可走。一是继续深入学习,以及规划模型的一些常识,加强Python的常识,开始自己造轮子,不断为自己的爬虫添加分布式、多线程等功能扩展。另一种方法是学习一些优秀的框架。先熟悉这些框架,确保自己能处理一些基本的爬虫任务,也就是所谓的温饱问题,然后再多了解它的源码等知识,进一步强化。个人觉得前一种方法其实就是自己造轮子。前辈们其实有一些很好的结构可以直接拿来用,但是为了更深入的研究,对爬虫有更全面的了解。明白,自己多做。后一种方法就是直接使用前人写过的比较优秀的结构,好好利用。首先要保证自己想完成的任务能够完成,然后再深入研究学习。第一个,自己多摸索,对爬虫的常识掌握得更透彻。二是借用别人的作品,方便自己,但可能没有心情去深化研究结构,思维可能会受到束缚。接触过几种爬虫结构,其中比较有用的是Scrapy和PySpider。个人觉得pyspider更容易上手,也更容易操作,因为它增加了WEB界面,写爬虫速度快,集成了phantomjs,可以用来抓取js渲染的页面。Scrapy定制化程度高,低于PySpider。适合学习和研讨会。需要学习很多相关知识,但是用它来自己讨论分布式和多线程是很合适的。从爬虫的基本需求来说:1、爬py不一定要用urllib,但是没用过的一定要学。更好的选择包括请求和其他更加用户友好和复杂的第三方库。如果pyer不了解各种库,那学了也没用。爬取最根本的就是把网页拉回来。如果再深入一点,你会发现你要面对不同的网页需求,比如认证、不同的文件格式、编码处理、各种奇怪的url合规处理、重复爬取问题、cookie跟随问题、多线程多进程A爬取、多节点爬取、爬取调度、资源压缩等一系列问题。所以第一步就是把网页拉回来,慢慢就会发现各种问题需要优化。2.存储抓取的时候,一般都是用一定的策略保存下来,而不是直接分析。我个人认为更好的架构应该是分析和捕获分开,更加松散。如果每个环节都出现问题,它可以隔离另一个环节的可能性。该问题很容易排除故障或更新。那么如何保存文件系统、SQLorNOSQL数据库、内存数据库就是这个环节的重点。可以选择先保存文件系统,然后按照一定的规则命名。3、分析网页的文本,是提取链接还是提取文本,这要看需要,但是必须要做的是分析链接。您可以使用最快和最佳的方法,例如正则表达式。然后把分析出来的结果应用到其他链接上:)4.如果你做了很多事情,完全没有show输出,怎么showvalue。所以找到好的显示元件来炫耀肌肉也是关键。如果你想写一个网站的爬虫,或者分析一些数据,不要忘记这个链接,这样你才能更好的把结果展示给别人看。PySpider是binux做的一个爬虫架构的开源补全。主要功能需求是:爬取、更新和调度多个站点的特定页面需要从页面中提取结构化信息。灵活、可扩展、稳定、可监控,这也是大多数python爬虫的需求——定向爬取、结构化分析。但面对各种不同结构的网站,单一的爬取方式可能无法令人满意,敏感的爬取控制是必要的。为了达到这个目的,简单的配置文件往往不够敏感,所以通过脚本控制爬取是不得已的选择。以重删调度、排队、爬取、异常处理、监控等功能为架构,提供爬取脚本,保证灵活性。最后加上web的修改调试环境,以及web任务的监控,就成了这个结构。pyspider的设计基础是:由python脚本驱动的爬虫模型爬虫,通过python脚本提取结构化信息,跟踪链接调度和抓取控制,通过基于web的脚本和调试环境实现最大灵敏度。Web显示调度状态捕获环模型成熟稳定,各模块相互独立。通过消息队列的连接,pyspider-arch可以灵活的从单进程扩展到多机分布。),processor(脚本执行):每个组件使用消息队列连接,除了scheduler是单点的,fetcher和processor都可以采用多实例分布式的方式部署。调度器负责整体的调度控制。任务由调度器调度。fetcher抓取网页的内容。处理器执行预先编写好的python脚本,输出结果或生成新的提链任务(发送给调度器),形成一个闭环。每个脚本可以灵活的使用各种python库来解析页面,使用结构API来控制接下来的爬取动作,通过设置回调来控制解析动作。Python爬虫入门。现在,Python可以是大数据的基础,人工智能的编程语言等等,是比较流行的语言。我还编写了许多其他非常简单和具体的教程。欢迎大家一起交流。