一、从小说网站抓取一本小说

import urllib2:python库,提供一系列针对url的操作方法

import re:re正则表达式,提供了一系列针对正则表达式的方法

BeautifulSoup4库:from bs4 import BeautifulSoup

BeautifulSoup4是一个从html或者xml中提取数据的py库

二、爬取西安工业大学的就业管理系统

http://jy.51uns.com:8022/Pro_StudentEmploy/StudentJobFair/Zhaoping.aspx?WorkType=0

爬去之后写进mysql数据库中(MySQLdb用于和mysql建立连接,相当于一个驱动);注意:python3装不上这个驱动,python3需要使用第三方库

1、详细情形:(1)运用Ajax异步交互方法,把上面的内容归为两类(静态内容:不需要改变;动态交互:会改变的,从数据库中读取的,需要维护的信息,如上述的招聘信息,会动态发生改变)

第一步:打开这个url时,访问服务器端指定服务,获取静态资源,渲染显示页面

第二步:使用Ajax异步交互,根据数据获取的url,获取招聘信息等动态资源,渲染显示

异步交互的好处:页面无需刷新就可以动态改变上一页和下一页【因为有一个网址是专门来进行服务器交互的,用户传递参数,根据参数选择,动态改变网页的内容。(用Ajax异步交互方法动态,从服务器端获取数据,用前端的编程语言动态的改变页面)】

打开该网站,邮件查看,选择network,刷新页面,即可以看到全部的交互过程

筛选出XHR类型

选中剩下筛选剩下的五个元素中的任意一个后,选择header,可以查看到请求的全部信息

选中response,点击按钮,查看是否为招聘信息,获得含有招聘信息的url:

拿到这些招聘信息的内容,并且对这些招聘信息进行处理

(2)点击招聘信息详情页并且分析:

1)url:

2)分析:Id必须不同:根据Id可以获取对应的打开方式,获取招聘信息内容

xml:轻量级的数据交互方式,标签化的封装键值对,出现于json之前

json格式:更加轻量化的数据交互方式。把数据打包压缩成字符串进行传输,在接收方获取到字符串之后,解压还原成原本数据格式,提高了数据传输效率【引用import json】

json.loads()把数据解压还原成python的数据格式

json.dumps()把python的数据格式压缩成json格式

(3)招聘信息详情页的url

可以 发现可以通过更改id,获取不同的招聘详情信息

三、使用flask建立http框架

1、实现http的方式:

(1)自己动手写一个:http框架的开发,运行在某一个端口上,访问网址时,调用自己的http服务器

(2)使用现成的http服务器:下载软件后,还有一些配置项,前后端分离的开发方式,可以借助现有的http服务器发布html页面实现;

也可以使用flask自己开发一个http服务器运行在指定的端口上,接收request请求,返回指定需要返回的东西。

2、实现:

一一对应的关系

WSGI:一种规范,规定了http服务器如何和一个python程序交互:Django和flask严格遵守这个协议

Django:最强大的框架,功能最齐全,应用最广泛,但是结构也很复杂

flask:超轻量级框架,根据需求随意定制

web.py:轻量级框架

(1)flask框架:遵循web框架设计理念

Model:模型层 专注于和数据库交互,操作数据库

View:视图层 显示给用户看的界面 html相关,用来展示前端页面

Control层:控制层,用来实现我们的各项功能逻辑

大多数情况下,html和服务器交互是通过表单提交

(2)框架的映射机制:

框架最基础的映射机制是路由映射:@app.route("url")相当于一个route map,在其中写了一些文件,可以只写一个文件,也可以写多个文件。可以直接输入ip加域名加函数名在浏览器中,进行访问。url不之一个,每一个页面都会对应一个url服务(此时只需要在不同的应用上写函数并且进行绑定,不同函数之间的网址url必须唯一,是一一映射的。)

给路由取名字,是一个唯一标识,可以通过在根路径下追加名字,从而找到指定的路径。在浏览器中可以据此找到指定的路径

2)框架结构的问题:写一个templates目录,把html文件目录写在下面

静态资源存放路径:static:存放所有的静态文件:css文件,图片文件,音视频文件……:通过访问static路径(网址加static加文件名)就可以访问,把这下面的所有文件都当作了静态资源文件

注意:路由:相当于写了一个文件

url不止一个,每个页面都要对应一个服务

不能在函数里面返沪应用层,控制内容;规定的存放路径为templates必须调用此目录模板(前端)。

static:存放所有的静态资源

(3)get和post的交互,如何利用这两种方法提交一个表单。单独的get方法则不用写了,默认为get方法;request.args是一个字典(在get方法下取的),一个列表或一个元组里面一一对应两个值,可以转换为字典。request.form在post方法下取。

1)get方法通过在uel后面追加键值对 key=value的方式来进行传参

request.args.get(key)

2)post方法通过表单提交数据

request.form.get(name)

毕业设计 基于python的网络爬虫-基于python的网络爬虫相关推荐

  1. 基于python的网络爬虫开题报告_网络爬虫开题报告.docx

    网络爬虫开题报告 网络爬虫开题报告 篇一:毕设开题报告 及开题报告分析 开题报告如何写 注意点 1.一.对指导教师下达的课题任务的学习与理解 这部分主要是阐述做本课题的重要意义 2.二.阅读文献资料进 ...

  2. python新闻聚合_基于Python的新闻聚合系统网络爬虫研究

    基于 Python 的新闻聚合系统网络爬虫研究 左卫刚 [摘 要] 摘 要 本研究旨在创建一个能够从不同页面布局中提取数据的开源爬 虫,其中包括网络爬虫. API .网络爬虫调度器以及 Socket ...

  3. python urllib.request 爬虫 数据处理-Python网络爬虫(基于urllib库的get请求页面)

    一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...

  4. python爬虫爬取图片代码_Python爬虫入门:批量爬取网上图片的两种简单实现方式——基于urllib与requests...

    Python到底多强大,绝对超乎菜鸟们(当然也包括我了)的想象.近期我接触到了爬虫,被小小地震撼一下.总体的感觉就两个词--"强大"和"有趣".今天就跟大家分享 ...

  5. python爬虫快速下载图片_Python爬虫入门:批量爬取网上图片的两种简单实现方式——基于urllib与requests...

    Python到底多强大,绝对超乎菜鸟们(当然也包括我了)的想象.近期我接触到了爬虫,被小小地震撼一下.总体的感觉就两个词--"强大"和"有趣".今天就跟大家分享 ...

  6. 19. python爬虫——基于scrapy框架爬取网易新闻内容

    python爬虫--基于scrapy框架爬取网易新闻内容 1.需求 [前期准备] 2.分析及代码实现 (1)获取五大板块详情页url (2)解析每个板块 (3)解析每个模块里的标题中详情页信息 1.需 ...

  7. [附源码]计算机毕业设计Python+uniapp一款基于安卓的小叮当音乐软件dpk40(程序+lw+APP+远程部署)

    [附源码]计算机毕业设计Python+uniapp一款基于安卓的小叮当音乐软件dpk40(程序+lw+APP+远程部署) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行环境配 ...

  8. 14. python爬虫——基于scrapy框架爬取糗事百科上的段子内容

    python爬虫--基于scrapy框架爬取糗事百科上的段子内容 1.需求 2.分析及实现 3.实现效果 4.进行持久化存储 (1)基于终端指令 (2)基于管道 [前置知识]python爬虫--scr ...

  9. python淘宝爬虫基于requests抓取淘宝商品数据_python淘宝爬虫基于requests抓取淘宝商品数据...

    在学校蹭过python的课,觉得python异常强大,趁寒假有时间,瞎搞一下,希望能和大伙一起探讨学习.废话不多说了,直接正题. requests 是Python的http库,可以完成绝大部分与htt ...

  10. python淘宝爬虫基于requests抓取淘宝商品数据

    在学校蹭过python的课,觉得python异常强大,趁寒假有时间,瞎搞一下,希望能和大伙一起探讨学习.废话不多说了,直接正题. requests 是Python的http库,可以完成绝大部分与htt ...

最新文章

  1. BZOJ 2707: [SDOI2012]走迷宫 [高斯消元 scc缩点]
  2. 总结八个好用的Python爬虫技巧
  3. 项目发布: error CS0103: 当前上下文中不存在名称“*****”
  4. legend---十二、js中的js语句和函数和ready函数的关系是什么
  5. php代码提示助手,laravel自动补全助手ide-helper安置及配置
  6. java 中hashcode 与 equals的关系
  7. C++socket编程(八)8.3:UDP广播
  8. 深度学习-吴恩达-笔记-5-深度学习的实践层面
  9. 使用Opencv2遇到error: C2061 语法错误 标识符dest
  10. ExtJS 4应用架构设计
  11. linux 终端 快捷键
  12. java带参数的方法笔记_Java学习笔记十一:Java中的方法
  13. wps linux 哪个版本好用吗,WPS Linux版与国产统一操作系统UOS完成适配:体验追上Wintel...
  14. 同网段的VLAN隔离
  15. 年少成名的我并没有放弃自己,谁敢说她\他文章比我写的好?!,不服来战!
  16. SpringBoot自动装配的魔力
  17. 小米路由器登陆以及切换wan账户脚本
  18. centos安装Nvidia显卡驱动(3090)
  19. 反馈纠错机制在学习中的重要性
  20. C语言源代码系列-管理系统之电子英汉词典

热门文章

  1. 5G RRC——为NAS层提供连接管理,消息传递等服务; 对接入网的底层协议实体提供参数配置的功能; 负责UE移动性管理相关的测量、控制等功能...
  2. windows家庭版 启用组策略
  3. numpy matplotlib 柱状图
  4. 2019~2020这个时间段适合买房吗?
  5. 托管exe文件的加载和执行
  6. 一键安装MySQL5.6.43脚本
  7. Fastadmin 写关联命名时,最好前后台用同一个model,方便管理(会出现命名空间问题)...
  8. 后台报错 新导入的项目报错
  9. nvm版本管理工具安装
  10. MFC中的消息处理函数