山东建筑大学计算机网络课程设计基于Python的网络爬虫设计

合集下载

基于Python的网络爬虫程序设计

基于Python的网络爬虫程序设计

该爬 虫 系统主 要 由三 个模 块: 页面抓 取 模块、页面分析模块 、数据存储 模块,三个模 块之间相互协作 ,共 同完成 网页数据 的抓 取。
(1)爬虫实现流程如 图 1所示 。 (2)打 开 某 信 息 网 招 聘 信 息, 该 网 站
1.2 聚 焦 型 爬 虫 该 爬 虫专注 某 一方 面, 只搜索 事 先定 义
根 据爬 取 的对 象、使 用 的结 构及 技术 , 爬 虫可分 为:
Python具 有丰 富 的标 准库 和强 大 的第 三 方库 。它常被昵称为胶水语 言,能够 和其他语 言制 作的各种模块 (尤其是 C/c++)很轻松地 联 结在一起,易于扩展 。常见 的一种应用情形 是,使 用 Python快速 生成 程序 的原型 (有时 甚至是程序的最终界面 ),然 后可 以用更合适 的语言改写其 中有特别 要求 的部分, 比如对于 性能要求特别高的 3D游戏中的 图形渲染模块 , 完全可 以用 C/C++重写封 装为 N on可 以调 用的扩展类库 。
该爬 虫 一般 需要 登录 提交 数据 ,才 能进 入页面提取信息 。
利 用网 络爬 虫 ,能够 帮助 用户 解 决上 网 浏览过程 中的一些信息的快速抓取及保存 。比 如 日常 上网浏览网页过程 中,经常会看 到一些 喜欢 的图片,希望保存下来作 为素材 使用,一 般 的方法 就是通 过单击 鼠标右键选择 另存 为来 保存图片 ,如果批量保存 图片工 作量会比较大, 而利用设计 的网络爬虫来爬取 图片 ,自动化 处
本 文通 过 Python语 言来实现 一个 简单 的 聚焦爬 虫程序 ,把需要 的招聘信 息爬取保存到 本地。该爬虫的功能是爬取 某信息网上关于互 联网职位的信息 ,并将其 发布的招聘信息保存 在 Excel文档 中。

python爬虫项目课程设计

python爬虫项目课程设计

python爬虫项目课程设计一、课程目标知识目标:1. 学生能理解网络爬虫的基本概念,掌握Python爬虫的基础知识;2. 学生能运用requests库进行网络请求,获取网页数据;3. 学生能使用BeautifulSoup库对获取的HTML内容进行解析,提取所需信息;4. 学生了解并遵循网络爬虫的道德规范与法律法规。

技能目标:1. 学生掌握Python编程基础,能运用爬虫技术独立完成数据采集任务;2. 学生能运用所学知识解决实际问题,具备一定的编程调试能力;3. 学生能通过实践项目,提高团队协作和沟通能力。

情感态度价值观目标:1. 学生培养对计算机编程的兴趣,激发学习积极性;2. 学生树立正确的网络安全意识,遵循网络道德规范;3. 学生通过项目实践,培养解决问题、不畏困难的精神品质。

分析课程性质、学生特点和教学要求:本课程为Python爬虫项目课程,旨在让学生掌握网络爬虫技术,培养实际编程能力。

学生为高年级学生,具备一定的Python基础,求知欲强,喜欢探索新知识。

教学要求注重实践操作,鼓励学生主动思考,培养解决实际问题的能力。

通过本课程的学习,使学生能够独立完成爬虫项目,为后续学习打下坚实基础。

二、教学内容1. 网络爬虫基本概念与原理- 爬虫的定义、分类与作用- 爬虫的合法性与道德规范2. Python基础回顾- Python基本语法- Python函数与模块3. 爬虫技术核心知识- HTTP请求与响应- requests库的使用- 网页解析与BeautifulSoup库- 数据存储(文本、数据库等)4. 实践项目:Python爬虫应用- 项目一:爬取某网站文章标题及链接- 项目二:爬取并解析某电商平台商品信息- 项目三:爬取并存储某电影网站电影数据5. 课程总结与拓展- 爬虫技术在实际应用中的注意事项- 爬虫技术进阶学习方向教学内容安排与进度:第一周:网络爬虫基本概念与原理,Python基础回顾第二周:爬虫技术核心知识(1),实践项目一第三周:爬虫技术核心知识(2),实践项目二第四周:爬虫技术核心知识(3),实践项目三第五周:课程总结与拓展教学内容与教材关联性:本教学内容与教材紧密相关,以《Python编程》教材中网络爬虫相关章节为基础,结合实际案例进行拓展和深入,确保学生学以致用。

python简易爬虫课程设计

python简易爬虫课程设计

python简易爬虫课程设计一、课程目标知识目标:1. 学生能理解网络爬虫的基本概念,掌握Python爬虫的基本原理。

2. 学生能运用requests库进行网络请求,使用BeautifulSoup库进行网页解析。

3. 学生了解并掌握如何从网页中提取有用信息,如文本、链接、图片等。

技能目标:1. 学生能独立编写简单的Python爬虫程序,实现对特定网站数据的抓取。

2. 学生具备解决实际爬虫问题中常见异常和问题的能力,如请求异常、解析错误等。

3. 学生能够对抓取的数据进行初步分析和处理,如数据清洗、存储等。

情感态度价值观目标:1. 学生培养对网络信息的敏感度,学会从海量数据中挖掘有价值的信息。

2. 学生树立正确的网络道德观念,遵循我国相关法律法规,尊重网站版权和用户隐私。

3. 学生培养团队合作意识,学会在项目过程中互相交流、协作、解决问题。

课程性质分析:本课程为Python编程拓展课程,适用于已掌握Python基础的学生。

课程旨在帮助学生将Python技能应用于实际项目,提高学生解决实际问题的能力。

学生特点分析:学生已具备一定的编程基础,对Python语法有初步了解。

学生对网络爬虫感兴趣,但可能对实际操作中遇到的困难缺乏解决经验。

教学要求:1. 理论与实践相结合,注重学生动手实践能力的培养。

2. 结合实际案例,引导学生掌握爬虫技术的应用。

3. 注重培养学生的解决问题的能力,提高学生的网络素养。

二、教学内容1. 网络爬虫基础知识:介绍网络爬虫的概念、分类及应用场景,让学生了解爬虫的基本原理和重要性。

- 爬虫概念及分类- 爬虫应用场景及意义2. Python爬虫库:讲解Python中常用的爬虫库,如requests、BeautifulSoup等,并展示如何使用这些库进行网页请求和解析。

- requests库的使用- BeautifulSoup库的使用3. 网页解析与数据提取:教授如何从网页中提取所需信息,包括文本、链接、图片等,并介绍常用的解析方法。

《Python爬虫程序设计》课程标准

《Python爬虫程序设计》课程标准

《Python爬虫程序设计》课程标准《Python爬虫程序设计》课程标准1、课程简介1.1 课程背景1.2 课程目标1.3 适用对象2、爬虫基础知识2.1 什么是爬虫2.2 爬虫应用领域2.3 爬虫工作原理2.4 HTTP协议2.4.1 请求方法2.4.2 请求头2.4.3 响应状态码2.5 解析2.5.1 常用的解析库2.5.2 解析器选择2.5.3 解析基础操作3、爬取数据3.1 数据爬取概述3.2 静态网页爬取3.2.1 页面分析3.2.2 请求与响应3.2.3 使用正则表达式提取信息3.3 动态网页爬取3.3.1 AJAX数据爬取3.3.2 使用Selenium模拟浏览器3.3.3 使用Pyppeteer实现无界面浏览器爬虫4、数据存储4.1 数据存储策略4.2 存储到本地文件4.2.1 文本文件4.2.2 CSV文件4.2.3 JSON文件4.3 存储到数据库4.3.1 关系型数据库4.3.2 非关系型数据库5、反爬虫与请求优化5.1 反爬虫机制5.1.1 IP封禁5.1.2 User-Agent检测 5.1.3 验证码识别5.2 请求优化5.2.1 多线程与多进程 5.2.2 设置请求头5.2.3 使用代理6、其他技巧与应用6.1 定时任务6.2 登录与鉴权6.3 图片6.4 邮件通知附件:- 附件1:示例代码- 附件2:实例应用法律名词及注释:- 爬虫:指一种自动获取网络数据的程序或脚本。

常见用途包括数据采集、搜索引擎建设等。

- HTTP协议:超文本传输协议,用于传输等超媒体文档的应用层协议。

- 解析:解析文档结构,提取所需信息的过程。

- AJAX:Asynchronous JavaScript and XML,一种基于JavaScript和XML的前端技术,可以实现页面无刷新更新数据。

- Selenium:一个自动化测试工具,可以用于模拟浏览器行为。

- Pyppeteer:一个无需浏览器的自动化测试工具,支持无界面浏览器爬虫。

山东建筑大学计算机网络课程设计基于Python的网络爬虫设计范文

山东建筑大学计算机网络课程设计基于Python的网络爬虫设计范文

山东建筑大学计算机网络课程设计基于Python的网络爬虫设计山东建筑大学课程设计成果报告题目:基于Python的网络爬虫设计课程:计算机网络A院(部):管理工程学院专业:信息管理与信息系统班级:学生姓名:学号:指导教师:完成日期:目录1 设计目的 02 设计任务内容 03 网络爬虫程序总体设计 04 网络爬虫程序详细设计 (1)4.1 设计环境和目标分析 (1)4.1.1 设计环境 (1)4.1.2 目标分析 (1)4.2 爬虫运行流程分析 (2)4.3 控制模块详细设计 (3)4.3 爬虫模块详细设计 (3)4.3.1 URL管理器设计 (3)4.3.2 网页下载器设计 (4)4.3.3 网页解析器设计 (5)4.4数据输出器详细设计 (6)5 调试与测试 (6)5.1 调试过程中遇到的问题 (6)5.2测试数据及结果显示 (7)6 课程设计心得与体会 (7)7 参考文献 (8)8 附录1 网络爬虫程序设计代码 (8)9 附录2 网络爬虫爬取的数据文档 (15)1 设计目的本课程设计是信息管理与信息系统专业重要的实践性环节之一,是在学生学习完《计算机网络》课程后进行的一次全面的综合练习。

本课程设计的目的和任务:1.巩固和加深学生对计算机网络基本知识的理解和掌握;2.培养学生进行对网络规划、管理及配置的能力或加深对网络协议体系结构的理解或提高网络编程能力;3.提高学生进行技术总结和撰写说明书的能力。

2 设计任务内容网络爬虫是从web中发现,下载以及存储内容,是搜索引擎的核心部分。

传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。

参照开放源码分析网络爬虫实现方法,给出设计方案,画出设计流程图。

选择自己熟悉的开发环境,实现网络爬虫抓取页面、从而形成结构化数据的基本功能,界面适当美化。

给出软件测试结果。

基于python的网络爬虫系统的设计与实现

基于python的网络爬虫系统的设计与实现

基于python的网络爬虫系统的设计与实现作者:蔡振海张静来源:《电脑知识与技术》2019年第23期摘要:随着大数据和人工智能的火热,编程语言Python的热度也迅速攀升,在各大编程语言排行榜中位居榜首。

越来越多的人想了解和学习Python语言。

该文从Python的安装,常用库(Requests)的安装、使用,网页爬虫通用代码框架的构造来介绍Python的特点。

使感兴趣者更加容易了解和使用Python。

关键词:Python;网页爬虫中图分类号:TP393; ; ; ; 文献标识码:A文章编号:1009-3044(2019)23-0036-02开放科学(资源服务)标识码(OSID):Design and Implementation of a Web Crawler System Based on PythonCAI Zhen-hai1, ZHANG Jing2(1.Jiangsu Vocational Institute of Commerce, Nanjing 211100,China; 2. Nanjing Technical Vocational College, Nanjing 211100, China)Abstract:With the popularity of big data and artificial intelligence, the programming language Python is also rapidly rising, ranking first in the list of major programming languages. More and more people want to know and learn Python. This paper introduces the characteristics of Python from the installation of Python, the installation and use of common libraries (Requests), and the construction of common code framework for web crawlers.Making it easier for interested people to understand and use Python.Key words: Python; Web crawler近年来,Python语言迅速崛起,其简洁、免费、易学习、兼容性好等特点以及其面向对象、函数式编程、过程编程、面向方面编程,受到众人的喜爱【1】。

Python网络爬虫课程设计

Python网络爬虫课程设计

Python⽹络爬⾍课程设计⼀、选题的背景为什么要选择此选题?要达到的数据分析的预期⽬标是什么?(10 分)为了通过爬取⽹站获取的信息来分析现在⽹络上社会、经济、技术等各种信息⽹站的影响⼒排⾏,以此了解⼈们对哪种信息⽹站更青睐,访问的更加频繁。

⼆、主题式⽹络爬⾍设计⽅案(10 分)1.主题式⽹络爬⾍名称《Python爬⾍对站长之家⽹站分类信息⽹站排⾏榜的爬取及分析》2.主题式⽹络爬⾍爬取的内容与数据特征分析爬取内容:各类⽹站的⽹站名称,⽹址,Alexa周排名,反链数。

数据特征分析:Alexa周排名,反链数等数据可通过后续绘制直⽅图、散点图等观察数据的变化情况。

3.主题式⽹络爬⾍设计⽅案概述(包括实现思路与技术难点)实现思路:本次设计⽅案主要使⽤request库爬取⽹页信息和beautifulSoup库来提取分类信息⽹站排⾏榜的信息。

技术难点:主要包括对站长之家⽹站分类信息⽹站排⾏榜部分的页⾯进⾏分析采集以及数据的可视化。

三、主题页⾯的结构特征分析(10 分)1.主题页⾯的结构特征2. 通过F12,对页⾯进⾏检查,查看我们所需要爬取内容的相关代码3.节点(标签)查找⽅法与遍历⽅法查找⽅法:find遍历⽅法:for循环四、⽹络爬⾍程序设计(60 分)爬⾍程序主体要包括以下各部分,要附源代码及较详细注释,并在每部分程序后⾯提供输出结果的截图。

1.数据爬取与采集1#导⼊库2import requests3from lxml import etree4import pandas as pd56#初始列表7 sitename_oyr,websites_oyr, Alexa_oyr, Antichain_oyr = [], [], [], []8for a in range(15):910#爬取⽹站的⽹址并且循环爬取前15页的内容11 url = "https:///hangye/index_shenghuo_fenlei_{}.html".format(a*15)1213#设置请求头14 headers = {15"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36"16 }1718#requests请求链接19 rq = requests.get(url,headers=headers).text2021#使⽤lxml模块中的etree⽅法讲字符串转化为html标签22 html = etree.HTML(rq)2324#⽤xpath定位标签位置25 html = html.xpath("/html/body/div[4]/div[3]/div[2]/ul/li")2627#获取要爬取内容的详情链接28for yr in html:29#爬取⽹站名称30 sitename = yr.xpath("./div[2]/h3/a/text()")[0]31#爬取⽹址32 websites = yr.xpath("./div[2]/h3/span/text()")[0]33#爬取Alexa周排名34 Alexa = yr.xpath("./div[2]/div/p[1]/a/text()")[0]35#爬取反链数36 Antichain = yr.xpath("./div[2]/div/p[4]/a/text()")[0]3738#输出39print(sitename)40print(websites)41print(Alexa)42print(Antichain)4344#将字段存⼊初始化的列表中45 sitename_oyr.append(sitename)46 websites_oyr.append(websites)47 Alexa_oyr.append(Alexa)48 Antichain_oyr.append(Antichain)4950#pandas中的模块将数据存⼊51 df = pd.DataFrame({52"⽹站名称" : sitename_oyr,53"⽹址" : websites_oyr,54"Alexa周排名" : Alexa_oyr,55"反链数" : Antichain_oyr,56 })5758#储存为csv⽂件59 df.to_csv("paiming.csv" , encoding='utf_8_sig', index=False)2.对数据进⾏清洗和处理3.⽂本分析(可选):jieba 分词、wordcloud 的分词可视化4.数据分析与可视化(例如:数据柱形图、直⽅图、散点图、盒图、分布图)1#直⽅图2import pandas as pd3import numpy as np4import matplotlib.pyplot as plt5 plt.rcParams['font.family'] = ['SimHei']6 s = pd.Series([5768,10433,10433,1168],['南宁赶集⽹','武汉百姓⽹','厦门百姓⽹','58同城长葛分类信息⽹'])7 s.plot(kind = 'bar',title = '⽹站Alexa周排名')8 plt.show()5.根据数据之间的关系,分析两个变量之间的相关系数,画出散点图,并建⽴变量之间的回归⽅程(⼀元或多元)。

Python关于爬虫课程设计

Python关于爬虫课程设计

Python关于爬虫课程设计一、课程目标知识目标:1. 学生能理解网络爬虫的基本概念及其在数据获取中的应用。

2. 学生掌握使用Python编写简单的爬虫程序,能够从网站上抓取和解析数据。

3. 学生了解并能够运用常用的Python爬虫库,如requests、BeautifulSoup 等。

4. 学生理解并能够遵循网络爬虫的道德规范和法律法规。

技能目标:1. 学生能够运用Python语言编写基本的网络爬虫程序,具备数据抓取的能力。

2. 学生能够运用解析库对抓取的HTML页面进行分析,提取所需数据。

3. 学生能够解决简单的反爬虫策略,如设置用户代理、处理Cookies等。

4. 学生能够通过实践操作,培养编程思维和问题解决能力。

情感态度价值观目标:1. 学生培养对网络爬虫技术的兴趣,激发探索精神和创新意识。

2. 学生认识到网络爬虫技术在现实生活中的应用价值,增强学以致用的意识。

3. 学生树立正确的网络道德观念,遵循法律法规,尊重数据版权。

4. 学生通过小组合作,培养团队协作能力和沟通表达能力。

本课程针对高年级学生,结合Python编程知识,以实用性为导向,注重培养学生的实际操作能力和解决问题的能力。

课程目标旨在使学生在掌握爬虫技术的基础上,提升数据获取与分析的能力,为今后的学习和工作打下坚实基础。

二、教学内容1. 网络爬虫基础概念:介绍网络爬虫的定义、作用、分类及基本工作原理。

- 教材章节:第1章 网络爬虫概述2. Python爬虫环境搭建:讲解Python环境配置、爬虫库的安装及使用方法。

- 教材章节:第2章 Python爬虫环境准备3. 基本的网络请求:学习使用requests库发送HTTP请求,获取网页数据。

- 教材章节:第3章 网络请求与响应4. 数据解析与提取:学习BeautifulSoup库的使用,对HTML页面进行解析,提取所需数据。

- 教材章节:第4章 数据解析与提取5. 反爬虫策略应对:介绍常见的反爬虫策略及应对方法,如设置用户代理、处理Cookies等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

山东建筑大学
课程设计成果报告
题目:基于Python的网络爬虫设计课程:计算机网络A
院(部):管理工程学院
专业:信息管理与信息系统
班级:
学生姓名:
学号:
指导教师:
完成日期:
目录
1 设计目的 0
2 设计任务内容 0
3 网络爬虫程序总体设计 0
4 网络爬虫程序详细设计 0
4.1 设计环境和目标分析 0
4.1.1 设计环境 0
4.1.2 目标分析 (1)
4.2 爬虫运行流程分析 (1)
4.3 控制模块详细设计 (2)
4.3 爬虫模块详细设计 (2)
4.3.1 URL管理器设计 (2)
4.3.2 网页下载器设计 (2)
4.3.3 网页解析器设计 (2)
4.4数据输出器详细设计 (3)
5 调试与测试 (3)
5.1 调试过程中遇到的问题 (3)
5.2测试数据及结果显示 (4)
6 课程设计心得与体会 (4)
7 参考文献 (5)
8 附录1 网络爬虫程序设计代码 (5)
9 附录2 网络爬虫爬取的数据文档 (8)
1 设计目的
本课程设计是信息管理与信息系统专业重要的实践性环节之一,是在学生学习完《计算机网络》课程后进行的一次全面的综合练习。

本课程设计的目的和任务:
1.巩固和加深学生对计算机网络基本知识的理解和掌握;
2.培养学生进行对网络规划、管理及配置的能力或加深对网络协议体系结构的理解或提高网络编程能力;
3.提高学生进行技术总结和撰写说明书的能力。

2 设计任务内容
网络爬虫是从web中发现,下载以及存储内容,是搜索引擎的核心部分。

传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。

参照开放源码分析网络爬虫实现方法,给出设计方案,画出设计流程图。

选择自己熟悉的开发环境,实现网络爬虫抓取页面、从而形成结构化数据的基本功能,界面适当美化。

给出软件测试结果。

3 网络爬虫程序总体设计
在本爬虫程序中共有三个模块:
1、爬虫调度端:启动爬虫,停止爬虫,监视爬虫的运行情况
2、爬虫模块:包含三个小模块,URL管理器、网页下载器、网页解析器。

(1)URL管理器:对需要爬取的URL和已经爬取过的URL进行管理,可以从URL 管理器中取出一个待爬取的URL,传递给网页下载器。

(2)网页下载器:网页下载器将URL指定的网页下载下来,存储成一个字符串,传递给网页解析器。

(3)网页解析器:网页解析器解析传递的字符串,解析器不仅可以解析出需要爬取的数据,而且还可以解析出每一个网页指向其他网页的URL,这些URL被解析出来会补充进URL管理器
3、数据输出模块:存储爬取的数据
4 网络爬虫程序详细设计
4.1 设计环境和目标分析
4.1.1 设计环境
IDE:pycharm
Python版本:python2.7.13
4.1.2 目标分析
目标:从百度词条Python开始,以广度优先的方式,爬取相关联的若干词条网页的标题和简介
(1)初始URL:"/item/Python?sefr=ps"
(2)词条页面URL格式:
(3)数据格式:标题——<dd class="lemmaWgt-lemmaTitle-title"><h1>Python</h1>
简介——<div class="lemma-summary" label-module="lemmaSummary"> (4)页面编码:utf-8
4.2 爬虫运行流程分析
爬虫程序的运行流程如图所示。

(1)爬虫控制器从给定的URL开始,将给定的初始URL添加到URL管理器中,然后调用URL管理器的相关方法,判断是否有待爬取的URL
(2)URL判断是否有待爬取的URL,如果有待爬取的URL,则返回给控制器,控制器将这个URL传递给网页下载器,下载该网页
(3)网页下载器将下载好的数据返回给控制器,控制器再将返回的数据传递给网页解析器解析
(4)网页解析器解析网页之后获取网页数据和网页的URL链接,再将这两个数据传递给控制器
(5)控制器得到解析出来的数据之后,将新的URL链接传递给URL管理器,将价值数据传递给数据输出器输出
(6)数据输出器以文本的形式输出传递进来的数据。

(7)回到第一步,循环
4.3 控制模块详细设计
爬虫控制器主要负责调度各个模块,所以在设计的时候只需要一次调用其他模块的方法,给对应的模块传递数据即可。

比较简单,可参见附录1查看源码。

4.3 爬虫模块详细设计
4.3.1 URL管理器设计
URL管理器主要管理待抓取的URL集合和已抓取的URL集合。

URL管理器设计的难点在于:防止重复抓取,防止循环抓取。

常用的URL管理器存储方式有三种,一是使用python内存即set集合来存储URL,二是使用数据库,例如MySQL,三是使用缓存数据库,例如redis。

因为这只是个简单的python 爬虫,所以我们选择利用内存存储URL。

建立两个集合,一个为待爬取集合,一个为已爬取集合,功能上图所示。

4.3.2 网页下载器设计
网页下载器是将互联网上URL对应的网页下载到本地的工具。

Python常用的网页下载器有两种,一个是python自带的urllib2,一个是第三方包requests。

这里我们选用的是urllib2,比较简单的网页下载工具,其中最简洁的下载网页的代码如下:
4.3.3 网页解析器设计
网页解析器是从网页中提取有价值数据的工具。

价值数据
网页解析器
HTML网页字符

新URL列表
Python常用的解析器有四种,一是正则表达式,二是html.parser,三是beautifulSoup,四是lxml。

这里我选用的是beautifulSoup作为我的网页解析器,相对于正则表达式来说,使用beautifulSoup来解析网页更为简单。

beautifulSoup将网页转化为DOM树来解析,每一个节点是网页的每个标签,通过它提供的方法,你可以很容易的通过每个节点获取你想要的信息。

使用方法如下:
#创建BeautifulSoup对象
soup = BeautifulSoup(html_cont, 'html.parser', from_encoding='utf-8')
#查找所有标签为a的节点,且href匹配正则表达式
links = soup.find_all('a', href=pile(r"/item/\%"))
#查找所欲标签为div的节点
summary_node = soup.find('div', class_="lemma-summary")
4.4数据输出器详细设计
数据输出器是负责数据输出的工具。

如果要输出的文件不存在,程序会自动创建,并且每次重写之前都会清空网页的内容。

这里我选择的输出方式是TXT文档,直接将数据分析器得到的数据存储在output.txt文件中。

5 调试与测试
5.1 调试过程中遇到的问题
(1)爬取第一个页面之后没有新的页面
解决方案:根据子网页,选择合适的正则表达式
(1)测试过程中某些网页中缺少标题或简介。

解决方案:往集合中添加数据的时候,判断一下是否为空,不为空再添加。

5.2测试数据及结果显示
测试的结果以txt文档形式显示,生成的文档路径和代码路径一致、
6 课程设计心得与体会
Python是一门面向对象的解释性语言(脚本语言),这一类语言的特点就是不用编译,程序在运行的过程中,由对应的解释器向CPU进行翻译,个人理解就是一边编译一边执行。

而这一类语言是需要预先编译的。

没有编译最大的痛苦就是无法进行断点调试,唯一的办法就是在有疑问的地方打印各个变量的值来进行调试。

这一类语言也没用类型,也就是说一个变量即可能是int型,但是也可能是String型,而且可以随时变化。

对于代码格式要求也相当严格,通过对于缩进的距离来判断代码是否处于同一个代码块。

Python也不依靠分号来决定一句代码是否结束,一行代码就是一句代码。

这样做的好处在于代码编写看上去很统一,不过习惯了java再看python,一开始还真的有点懵。

总得来说,对Python的初涉感觉不错,这门语言相比较Java更加的简洁,这次的课设是初步接触python,以后会自己深入学习。

7 参考文献
[1] 钱程,阳小兰,朱福喜等.基于Python的网络爬虫技术[J].黑龙江科技信息,2016,(36):273.
[2] 戚利娜,刘建东.基于Python的简单网络爬虫的实现[J].电脑编程技巧与维护,2017,(8):72-73.
[3] ,Core Python Programming. 2001-9-11
8 附录1 网络爬虫程序设计代码
spiderMain.py
url_manager.py
url_parse.py
html_outputer.py
9 附录2 网络爬虫爬取的数据文档。

相关文档
最新文档