北欧2022年Python爬虫心得分享

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

前言

`网络爬虫也称为“蜘蛛”,它可以在海量的互联网信息爬取需要的信息。简单地说它是模拟人类请求网站的行为,即自动请求网页、抓取数据,然后从中提取有价值的数据 。具体步骤如下,首先发送请求获取目标网页,通过分析页面获得网页的源代码。其次,解析页面从网页源代码中提取出本研究所需的数据。该操作为数据的处理以及分析提供便利,因此需要给予高度重视。最后,以适当的格式保存抽取的部分数据。通常以 TXT文本、CSV或JSON等格式将数据保存在文本中。

一、python爬虫心得

学习python爬虫之前,在学校安排的《数据仓库与数据挖掘》课程中,学习了一线python的基础知识。之后我便在慕课和b站中自学了python爬虫的一些知识,对python爬虫有一定的知识储备。在本课程开课,跟着老师学习真正的python爬虫之后,才算是真正入门python爬虫,也才知道网上免费的课程其实只是教一些皮毛的东西,学校的老师教给我们的才是更深入更全面的知识,通过老师传授的知识,然后自己去爬取到的数据有一种莫名的震撼和成就感,终于感受到了python爬虫的有趣和魅力。
刚开始上老师的课时,感觉和学校里面老师的讲课方式不一样,学校里面的老师大多数偏向于讲一些书本上的理论知识,很少关心能否真正实践于生活。但老师的讲课方式恰恰相反,相对于其他老师更侧重于学习该课之后能否服务于将来的实际生活,能否在将来的工作和生活中起作用。
老师在讲课过程中,通过讲课内容然后教我们安装了一些python爬虫需要用到的软件,比如Anaconda、Pycharm、Mysql、Mongodb等,有了这些工具我们可以更好的进行爬虫学习。
学习一学期老师的课程之后,关于python爬虫我的一些总结,大概学习步骤为:
(1) 安装requests库和BeautifulSoup库;
(2) 获取爬虫所需的header和cookie
(3) 获取网页
(4) 解析网页
(5) 分析得到的信息,简化地址
(6) 爬取内容,清洗数据
(7) 将相应数据库连接进行数据存储
以上,有不足的地方,python这个语言需要一个不断学习的过程,python功能很多,爬虫只是其中一个功能,深入学习python我相信肯定还会有更大的收获,但目前肯定还是把python学透学精,所以结束该课程之后也还要继续学习python爬虫,多多实践,遇到问题首先学会自己去尝试解决,解决不了再去请教专业人士。这样子才会学到更多知识,才能再将来的工作中才会帮助到我们。

二、Pip模块

(1) Requests
requests是一个很实用的Python HTTP客户端库,爬虫和测试服务器响应数据时经常会用到,requests是Python语言的第三方的库,专门用于发送HTTP请求。
(2) urllib
urllib是Python内置的HTTP请求库,不需要额外安装,它包含4个模块。
(3) scrapy
scrapy是适用于Python的一个高层次的屏幕抓取和网站抓取框架,用于抓取网站站点并从页面中提取机构化的数据。可用于数据监测、数据挖掘等方面。
(4) gerapy_auto_extractor
gerapy-auto-extractor的Python项目详细描述Gerapy自动提取器这是Gerapy的自动提取器模块。
(5) pymysql
pymysql是一个连接mysql数据库的第三方模块,可作为连接mysql数据库的客户端,对数据库进行增删改查操作 。
(6) BeautifulSoup
Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。
(7) pymongo
pymongo是Python中用来操作MongoDB的一个库。 而MongoDB是一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。. 其文件存储格式类似于JSON,叫BSON,不严谨、通俗地理解,就是Python中的字典键值对格式。
(8) gerapy
gerapy 是一款分布式爬虫管理框架,支持 Python 3,基于 Scrapy、Scrapyd、Scrapyd-Client、Scrapy-Redis、Scrapyd-API、Scrapy-Splash、Jinjia2、Django、Vue.js 开发,Gerapy 可以帮助我们:更方便地控制爬虫运行、更直观地查看爬虫状态、更实时地查看爬取结果、更简单地实现项目部署、更统一地实现主机管理、更轻松地编写爬虫代码。
(9) sqlalchemy
sqlalchemy是Python编程语言下的一款orm框架,此框架建立在数据库api之上,使用关系对象映射进行数据库操作。通过使用描述对象和数据库之间映射的元数据,将面向对象语言程序中的对象自动持久化到关系数据库中。

三、Scrapy框架爬取

1、Scrapy简述
Scrapy是一个可以爬取网站数据,为了提取结构性数据而编写的开源框架。Scrapy的用途非常广泛,不仅可以应用到网络爬虫中,还可以用于数据挖掘、数据监测以及自动化测试等。Scrapy是基于Twisted的异步处理框架,架构清晰、可扩展性强,可以灵活完成各种需求。
在Scrapy的工作流程中主要包括以下几个部分:
(1) Scrapy Engine(框架的引擎):用于处理整个系统的数据流,触发各种事件,是整个框架的核心。
(2) Scheduler(调度器):用于接收引擎发过来的请求,添加至队列中,在引擎再次请求时将请求返回给引擎。可以理解为从URL队列中取出一个请求地址,同时去除重复的请求地址。
(3) Downloader(下载器):用于从网络下载Web资源。
(4) Spiders(网络爬虫):从指定网页中爬取需要的信息。
(5) Item Pipline(项目管道):用于处理爬取后的数据,例如数据的清洗、验证以及保存。
(6) Downloader Middlewares(下载器中间件):位于Scrapy引擎和下载器之间,主要用于处理 引擎与下载器之间的网络请求与响应。
(7) Spider Middlewares(爬虫中间件):位于爬虫与引擎之间,主要用于处理爬虫的响应输入和请求输出。
(8) Scheduler Middlewares(调度中间件):位于引擎和调度之间,主要用于处理从引擎发送到调度的请求和响应。
2、配置Scrapy框架
A. Items.py的配置:设置title/url/content/student-id等几个列标签
调用scrapy包
B.Middlewares.py的配置:添加header

C. Pipelines.py的配置:配置scrapy与数据库的链接
加载pymongo数据包,并加载用户名、密码、端口号等。
D.Settings.py 的配置:添加浏览器身份

添加MONGODB数仓设置:
将数据仓库IP、数据仓库端口号、数据仓库数据库、数据仓库数据表单信息加到mongodb数据仓库。
3.创建爬虫python文件:打开powershell,输入scrapy genspider new
4.编写爬虫代码
在pycharm中打开我们创建的python爬虫文件,进行如下代码输入:
调用scrapy包,载入items文件里的NewDataItem字典,再载入上述三个相关的包。
设置一个url循环,将url的第一位和第二位数据放入item字典中的“site”和“item”中。
将学号放入item字典的“student_id”中,返回item。
5.数据存储
添加mongodb数据设置
在piplines中创建mongdb数据库链接
爬到的数据返回到item

6.结果截图

四、Gerapy的搭建流程

(1) 安装gerapy、scrapyd、pywin32、gerapy_auto_extractor模块

(2) 将数据迁移,生成表单

(3) 生成数据库


(4)创建用户

(5) 启动新的cmd,cd进入虚拟环境的启动Scripts文件,启动scrapy脚本

(6)不要关闭窗口,打开浏览器输入127.0.0.1:8000

(7)输入密码和用户名
创建新的主机,ip 为127.0.0.1 端口为8600

将脚本文件夹放入project的文件夹下



名称为“南方网”,执行的文件名称NewsData,脚本为news,主机名localhost,调度方式为interval;
运行时间设置为1分钟,时区选择香港时间。

五、在Gerapy框架管理中配置项目并爬取数据

项目部署

运行结果:


Navicat中mongodb数据库导入的表单:

物联沃分享整理
物联沃-IOTWORD物联网 » 北欧2022年Python爬虫心得分享

发表评论