热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

基于python爬虫的论文的开题报告_基于python的新闻网站网络爬虫设计与实现开题报告...

1.研究背景及其意义互联网从发展到至今,已经深入到人们的日常生活中,并且不论老人还是小孩,多少都会接触到互联网。在这个越来越信息化的社会&

1.研究背景及其意义

互联网从发展到至今,已经深入到人们的日常生活中,并且不论老人还是小孩,多少都会接触到互联网。在这个越来越信息化的社会,互联网上的信息量更是爆炸式的增长,但是在如此巨大的信息量中,我们想要找到我们需要的价值信息就非常困难了。国内国外包含了很多搜索引擎,类似有搜狗,百度,360等等,我们如何有效的寻找具有价值的信息?网络爬虫应运而生,它可以帮助我们在繁琐的信息网中爬取出关键信息,而且可以一次性的爬取出来,省去了人力搜索。

网络爬虫技术发展至今,已经具有非常的成熟的技术架构,我们可以用它爬取我们需要的数据,并且存储在我们的数据库。例如如果我们需要爬取大量银行数据利率做数据分析时,我们不可能去每个网站去做手动统计,这样会消耗我们大量人力和时间,非常浪费资源,爬虫可以做到快速且一次性提取中一个网站中我们所需要的数据。现在不仅仅是个人需要互联网上的信息,大部分企业都会去网络上爬取公司需要的数据,甚至有的公司会专门设置一个爬虫工程师的岗位。这些充分说明了网络爬虫已经步入人们日常生活中,并且网络爬虫会有一个开阔的发展前景和魅力。

2.国内外研究现状

不管国内国外,爬虫现在的地位越来越稳固,且不可动摇,对爬虫领域的潜心研究,不管是国内,还是国外,从爬虫诞生的那一刻起,就没有停止过。据说爬虫的起源是为了统计服务器的个数。互联网发展到现在,国内国外都已经有大量引擎,

Google、百度、360等,都是采用网络爬虫原理设计的。

2020年的今天,市面上开源的主流爬虫框架有Scrapy、Nutch等,爬虫工具有Content、火车采集器等。Scrapy属于国内的一款,它使用极为方便,可以爬取大多数静态网页的内容,可以根据需求定制集成一些工具,爬取效率较高。但也有局限性,对于动态JS网页必须借助于第三方工具,爬取主要手段xpath解析或者正则提取。国外的比较流行的框架是ContentGraber,它是一款面向企业级的的网络爬行软件,它几乎可以从任何网页中提取数据,并且可以结构式的保存,它的功能十分强大,适合高级程序员做一些更复杂的事。而且目前,单机的Scrapy系统也可以结合redis数据库,利用消息队列发布任务,做一个分布式爬虫系统,主要利用redis为内存数据库的特点去发布任务,多个Scrapy去抢任务,提高整个爬虫效率。

近几年,对爬虫方面的工具集也从未停止过,国内外学者都在不断创新和改进现有的技术,曹文斌等人借助自动化测试工具selenium模拟浏览电商网页进行爬取,侯志江等人用自动化交互式采集工具解决了Ajax动态数据的爬取问题。

3.选题研究的内容

本论文研究内容是基于Python的爬虫网络设计,利用Python的Scrapy的框架搭建爬虫网络,Django框架做后台数据管理系统

3.1掌握Python语言的特性

Python语法结构相对于其他语言来说比较简单,并且具有一些其他语言不具备的优势,比如字符串切片操作、一句代码换值操作等。它具有可移植性,可在不同操作系统中进行代码移植,不会影响它的执行;Python属于解释性语言,编译的代码可在操作系统中直接执行,不需要转换为二进制;Python具有很多强大的第三方库,可应用在不同的操作空间里,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器等,能够提高程序编写效率。

3.2Scrapy框架流程的使用

网络爬虫就是模拟客户端发送网络请求,按照一定规则,抓取互联网信息的程序;Scrapy框架是Python中一个比较强大的爬虫工具,它主要分为引擎、调度器、爬虫模块、项目管道、下载器中间件、爬虫中间件、调度中间件等;找到一个网页中url,引擎把它封装成一个请求传给下载器,下载器将资源下载下封装成应答包,爬虫解析Response,解析出实体Item,交给实体管道进一步处理,然后把Url交给调度器等待抓取。利用Scrapy框架爬取一个url需要5步,第一步,创建一个蜘蛛,也就是

spider.py文件,用来对url进行解析;第二步,找出你需要在网页中爬取的数据,然后在items.py中创建models,类似与数据库表中的字段;第三步,可以在中间件中做一些网页中做一些应对反爬策略的方法,比如应对js加载,可以使用selenium工具做一些滚动预加载;第四步,开始爬出,实时注意控制板是否有错误发生;第五步,利用pipelines.py文件将爬取的内容存入文件中或者写入准备好的数据库的表中。

3.3Django框架的使用

Django框架是Python中应用广泛的框架,具有非常多的功能,使用于大型工程的创建,而且拥有着自带的admin后台管理系统,是一款典型的MVC框架。在本系统设计中,Scrapy框架将数据爬取并存入数据库中,Django框架连接数据库,将数据显示给用户。Url采用通用的restful风格,restful风格是一种url设计风格,大部分程序都会采用这种通用的url风格,具有很强的实用性。Django框架一般在setting配置数据库的的连接,包括一些中间件的设置。

4.常见反爬策略以及应对方法

4.1动态JS加载

动态JS加载是指在一般网页中,我们都能在浏览器源码中不能直观看出来确又在网页中显示出来的东西。

4.2限制主机IP

我们每一人的主机只有一个唯一IP,我们在爬取某些网站资源时,如果我们一直窃取网站内容,它会限制我们IP不能对该网站进行访问,这种问题我们该怎样解决呢?我们可以再middware.py文件中维护一个代理ip池,网站上有免费的代理IP,也可以在某宝上购买一定数量的合法IP,供我们使用。

4.3验证码限制

(1)大家在登录的时候都会遇到滑动验证码或者输入字符类似的验证码,遇到这种情况,他会阻止我们对网站进行爬虫,我们虽然可以用selenium做自动登录,但无法获取这种动态验证码的值。

4.4检验数据头

网站管理人员会根据请求的user-agent判定你是不是机器爬虫。所以,此时往往就需要伪装user-agent,模拟成真实的浏览器去取出内容。我们可以根据我们访问的网页找到我们的user-gent,作为报文直接访问网站。



推荐阅读
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 随着网络安全威胁的不断演变,电子邮件系统成为攻击者频繁利用的目标。本文详细探讨了电子邮件系统中的常见漏洞及其潜在风险,并提供了专业的防护建议。 ... [详细]
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 利用存储过程构建年度日历表的详细指南
    本文将介绍如何使用SQL存储过程创建一个完整的年度日历表。通过实例演示,帮助读者掌握存储过程的应用技巧,并提供详细的代码解析和执行步骤。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 该平台旨在为大型企业提供一个高效、灵活且可扩展的分布式微服务架构解决方案。它采用模块化、微服务化和热部署的设计理念,结合当前最先进且无商业限制的主流开源技术,如Spring Cloud、Spring Boot2、MyBatis、OAuth2和Element UI,实现前后端分离的系统管理平台。 ... [详细]
  • 阅读本文大约需要3分钟。微信8.0版本的发布带来了许多令人振奋的新功能,如烟花特效和改进的悬浮窗,引发了用户的热烈反响。 ... [详细]
  • 深入解析:阿里实战 SpringCloud 微服务架构与应用
    本文将详细介绍 SpringCloud 在微服务架构中的应用,涵盖入门、实战和案例分析。通过丰富的代码示例和实际项目经验,帮助读者全面掌握 SpringCloud 的核心技术和最佳实践。 ... [详细]
  • 本文探讨了MariaDB在当前数据库市场中的地位和挑战,分析其可能面临的困境,并提出了对未来发展的几点看法。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文详细介绍了Python编程语言的学习路径,涵盖基础语法、常用组件、开发工具、数据库管理、Web服务开发、大数据分析、人工智能、爬虫开发及办公自动化等多个方向。通过系统化的学习计划,帮助初学者快速掌握Python的核心技能。 ... [详细]
author-avatar
手机用户2502931803
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有