基于python的数据爬虫学习与体会

文章目录

  • 一、从Python编程基础中简述爬虫应用都会用到哪些pip模块以及对应的功能。
      • pip install reqeusts
      • pip install bs4
      • pip install pandas
      • pip install selenium
      • pip install sqlalchemy
      • pip install pymongo
      • pip install gerapy_auto_extractor
      • pip install gerapy
      • pip install scrapy==2.6.1
  • 二、爬虫的流程,代码及结果截图 (按照导入不同数据库分类)
    • 1.Mysql代码
      • mysql结果
    • 2.Pymongo代码
      • pymongo结果
  • scarpy爬虫框架流程,代码及结果截图:
    • 总流程
        • 1.前期准备
        • 配置
        • Spider设计
      • ==程序运转从这里开始:==
  • 三、一点心得


提示:以下是本篇文章正文内容,下面案例可供参考

一、从Python编程基础中简述爬虫应用都会用到哪些pip模块以及对应的功能。

pip install reqeusts

  • 1.请求头设置
    headers = { ‘User-Agent’:'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) // }
  • 2.get请求
    import requests r = requests.get(‘http://xxxxxxxxxx/get’)
  • 3.Post请求
    r = requests.post(‘http://xxxxxxxxxxx/post’)
  • 4.Request还提供了:响应的获取分析、爬取二进制数据、可进行文件上传、处理cookies、会话维持的方法(持续登录)、SSL证书验证(https网页)、代理设置、超时设置、用户身份验证等方法可以移步去了解这篇文章:

链接:https://blog.csdn.net/m0_67401761/article/details/126040358

pip install bs4

*BeautifulSoup简称: bs4 。BeautifulSoup,和lxml一样,是一个html的解析器,主要功能也是解析和提取数据,通俗的讲bs4库把html源代码重新进行了格式化,从而方便我们对其中的节点、标签、属性等进行操作。

  • bs_1=BeautifulSoup(r1.text,‘lxml’)两个参数:第一个参数是要解析的html文本,第二个参数是使用那种解析器,对于HTML来讲就是html.parser,这个是bs4自带的解析器
  • Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,其中一个是 lxml .根据操作系统不同,可以选择下列方法来安装lxml: pip install lxml”

pip install pandas

  • pandas 是 Python 的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据

pip install selenium

python+selenium结合来实现爬虫十分巧妙。由于是模拟人的点击来操作,所以被反爬的概率将大大降低。该技术也可以和其它技术结合如正则表达式,bs4,request,ip池等。然由于在获取页面的过程中会发送很多请求,所以效率较低,爬取速度会相对慢,建议用于小规模数据爬取。

pip install sqlalchemy

  • sqlalchemy是一个python语言实现的的针对关系型数据库的orm库。可用于连接大多数常见的数据库,比如Postges、MySQL、SQLite、Oracle等。

官方介绍链接: https://www.sqlalchemy.org/

pip install pymongo

         pymongo模块是python操作mongo数据的第三方模块,
conn = MongoClient(‘数据库所在地址’, 端口号) # 表示连接数据库服务器,并创建相应的对象,其中端口号必须是数字。
db_name = conn.tech_stargate # 表示创建想要连接数据库的对象。tech_stargate是想要连接的数据库名
db_name.authenticate(“数据库账号”, “数据库密码”) # 表示连接该数据库。
user = db_name.userModel # 表示创建想要操作的数据库表的对象。
基本操作:

  • :add = {‘字段名’:‘字段值’,‘字段名1’:‘字段值1’}
    user.insert(add)
    :user.remove({‘phoneNo’:‘xxxxx’})
    :user.update({‘phoneNo’:‘xxxxx’},{‘$set’:{‘想要修改的字段名’:‘对应的值’}})
    :find():该方法可用来查询数据,不传参表示查询所有数据。也可以传入一个dict作用查询条件,键是字段名,值是具体字段值

pip install gerapy_auto_extractor

  • gerapy_auto_extractor是一种不使用XPath或选择器提取列表、标题、内容、日期等信息的提取器,使用这个包来区分列表页和详细信息页,我们可以使用它来提取url从列表页中提取{},datetime,content而不使用任何XPath或选择器。
    对于中文新闻网站来说,它比其他场景更有效。对于detail页面,可以使用extract_title方法提取标题,使用extract_content方法提取内容, 使用extract_datetime方法提取日期时间。

pip install gerapy

  • Gerapy 是一款分布式爬虫管理框架,有了它我们可以
    更方便地控制爬虫运行,更直观地查看爬虫状态
    更实时地查看爬取结果,更简单地实现项目部署,更统一地实现主机管理

pip install scrapy==2.6.1

  • Scrapy 是用 Python 实现的一个为了爬取网站数据、提取结构性数据而编写的应用框架。链接非常不错:

链接:https://segmentfault.com/a/1190000013178839

二、爬虫的流程,代码及结果截图 (按照导入不同数据库分类)

1.Mysql代码

代码如下(示例):
在这里插入图片描述

首先导入必要的库和函数,其次输入对应的,mysql数据库相关的账户密码端口,创建的数据库名,表名;再用request发起访问,回馈后利用bs4处理下载的html,整理出想要的结构与内容,最后导入数据库。

mysql结果

在这里插入图片描述

2.Pymongo代码

在这里插入图片描述

首先导入必要的库和函数,其次输入对应的,mongodb数据库相关的账户密码端口,创建的数据库名,表名,再用request发起访问,回馈后利用bs4处理下载的html,整理出想要的结构与内容,最后导入数据库。

pymongo结果

在这里插入图片描述


scarpy爬虫框架流程,代码及结果截图:

总流程

+新建项目 (scrapy startproject xxx): 新建一个新的爬虫项目
+明确目标 (编写items.py): 明确想要抓取的目标
+制作爬虫 (spiders文件夹下/news.py): 制作爬虫爬取网页
+存储内容 (pipelines.py): 设计管道来存储爬取内容

1.前期准备

新建文件夹,右键打开选项命令行
输入pip isntall scrapy==2.6.1
版本尽可能一致;
在命令行中输入scrapy startproject NewsData
# 意思是创建一个叫NewsData的新的scrapy框架
框架文件夹在pycharm中打开;
前期准备完成。

配置

  • Items:设置title/url/content/student-id等列标签
    在这里插入图片描述

  • Middlewares:添加header等中间件操作
    在这里插入图片描述

  • Pipelines:管道,配置scrapy与数据库的链接:
    在这里插入图片描述

  • Setting:可以自行配置一些参数;添加浏览器身份,添加MONGODB数仓设置:
    在这里插入图片描述


以上内容为各种配置操作,如需要一键式的配置代码移步至:
https://github.com/amoyiki/LearnedAndProTest/tree/


Spider设计

配置主要的蜘蛛程序:在文件夹spider下创建新的蜘蛛程序:news
导入必要的库和函数
在这里插入图片描述

创建url队列,在这里需要提前处理好,否则后面的数据处理非常复杂,所以将url和其他数据写成列表的形式,使用excel和notpad,观察网页结构,最后得到列表。
网页list分析:右键检查网页,得到网页中导航栏的HTML结构,复制元素
在这里插入图片描述

notepad++处理:使用插件(tidy2)需要自行下载安装,也可以不用,只是为了excel方便处理
在这里插入图片描述

Excel处理url-list:,写成列表格式,[0]为url,[1]为网站名,[2]为网站内各站点
在这里插入图片描述

得到url队列:

在这里插入图片描述


程序运转从这里开始:

  • Spider(news.py)发送请求url
    引擎将url传给调度器,调度器request请求排序入队,request返回结果再传给引擎,使用yield返回结果,参数一定要严格按照下面来写。
    在这里插入图片描述

  • 引擎将返回结果给下载器,下载器按照“下载中间件”的设置,下载request请求
    这个下载中间件设置在middlewa这个py文件中
    在这里插入图片描述

  • 下载好后传给引擎。(如果失败,引擎告诉调度器,request下载失败,记录后跳过该request继续执行后面的下载任务

  • 引擎将下载好的对象传给Spider文件(我的是news.py),response默认交给def parse()函数处理,最后spider文件会把下载下来的对象按照如下要求变成item数据,并且返回一个新的url请求,给引擎,即将回到第一步
    在这里插入图片描述

  • 引擎将items数据传给管道,管道开始执行相应的操作(写入数据库等操作)
    在这里插入图片描述

  • 引擎处理刚才spider发来的请求,然后向调度器发送url相应的request请求进入循环,直到调度器中不存在任何request,重新下载刚才没成功网页后结束整个爬虫。

如果想要更精彩的案例详情请移步:https://segmentfault.com/


三、一点心得

       最大的收获,我认为便是“自信”,一种可视化的自信。或许一个学期没能见到老师尊容,是我这个学期最大的遗憾吧,杨老师讲课,很有趣,它更像是比我大两三届的学长,在社会中摸爬滚打,回到校园将知识和经验传授予我们。很优秀,也很耐心。学习完爬虫这门课,当我在一次次bug面前绞尽脑汁的搜索和理解,百度,csdn,博客,掘金哈哈哈哈一大堆能查的查完之后我体会到了注释和平时知识积累的意义;当因为权限问题,环境问题,配置问题卸载掉各种软件从头再来时,我感觉到了无比的绝望深刻体会到了严谨的操作和记录是多么重要;当看着眼前cmd运行顺畅的爬虫时,彷佛昨日狼狈的样子过眼云烟,欢快的心绪策马奔腾;很不舍,这门课只有一个学期的课时,如果可以更久,我或许比过去和现在更加自信和从容。
      具体学到什么,我想我最骄傲的便是成功的爬取了京东的评论,爬取了每一页有不同结构的科技网,很多结构类似的作文网。虽然前期经历了一次一次的bug,自己不断查找原因,询问老师,过程中也是意外的掌握了浏览器中一个查找xpath好用的拓展插件。最成功的应用便在R语言的结课论文中,我选取了分析京东评论这一方向,需要获取大量的原始评论文本。在爬取京东时不断地查找资料,观看B站额外掌握了一门新的框架技术—selenium,最终也是成功爬取到了八千余条某店铺评论数据。和scrapy不同,scrapy是在客户端的内存解析,只是在内存中的html文档上运行xpath,不需要展开具体的某一网页;selenium是类似于手指触控模拟器一样,帮你去点击操作浏览器,过程中一定会有模仿人行为的操作,因此可以避开很多反爬。可参考链接:三大主流特色
       反复打磨,从只会拼凑scrapy,到回归一次一次经验,结合最开始的scrapy流程,清晰的掌握了scrapy各个部分的原理和流程,便令我心旷神怡。本来打算这个收获准备用chatgpt划划水,但想着,这么有意义的事情,怎么能交给冰冷的AI呢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/16880.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

采用ChatGPT对强化学习A2C源代码添加注释说明

强化学习中的Actor-Critic算法是一种普遍经常用到的经典算法,Actor-Critic 翻译成“演员—评论家”方法。策略网络 π(a|s;θ) 相当于演员,它基于状态 s 做出动作 a。价值网络 q(s,a;w) 相当于评论家,它给演员的表现打分,量化在状…

【哈士奇赠书活动 - 25期】-〖Python自动化办公应用大全(ChatGPT版) 〗

文章目录 ⭐️ 赠书 - 《Python自动化办公应用大全(ChatGPT版)》⭐️ 内容简介⭐️ 作者简介⭐️ 编辑推荐⭐️ 赠书活动 → 获奖名单 ⭐️ 赠书 - 《Python自动化办公应用大全(ChatGPT版)》 ⭐️ 内容简介 本书全面系统地介绍了P…

ChatGPT常用的指令(prompts)系列八-写作、UI设计、招聘、网路安全

系列文章目录 内容翻译自:https://github.com/f/awesome-chatgpt-prompts,并加入自己的实践内容 1、 ChatGPT常用的提示语(prompts)系列一 2、 ChatGPT常用的提示语(prompts)系列二 3、 ChatGPT常用的提示语…

史上AI最高分!谷歌大模型创美国医师执照试题新纪录,科学常识水平媲美人类医生...

杨净 羿阁 发自 凹非寺量子位 | 公众号 QbitAI 史上AI最高分,谷歌新模型刚刚通过美国医师执照试题验证! 而且在科学常识、理解、检索和推理能力等任务中,直接与人类医生水平相匹敌。在一些临床问答表现中,最高超原SOTA模型17%以上…

首位华人女数学家获拉马努金奖!北大数院校友,陶哲轩恽之玮曾得过此奖

白交 发自 凹非寺量子位 | 公众号 QbitAI 又一位北大数院校友——唐云清,斩获拉马努金奖。 此前,00级校友张伟、恽神恽之玮,03级校友、浙大教授刘一峰曾获此奖。 △图源:George BergmanUC伯克利 除此之外,还有像陶哲轩…

chatgpt赋能Python-python_hanoi

Python Hanoi - 轻松解决汉诺塔问题 如果你是一位对算法有一定了解的程序员,那么你一定听说过汉诺塔问题。这个问题是计算机科学中最常见和最有趣的问题之一。这个问题听起来似乎很简单,但实际上很多程序员也会在这个问题上遇到困难。在这篇文章中&…

吴恩达的2022年终盘点:生成式AI、ViT、大模型

Datawhale干货 作者:吴恩达,斯坦福大学,编辑:智源社区 近日,吴恩达在圣诞节的《The Batch》特刊上发布了一年一度的年终盘点。在过去的一年,生成式AI迎来爆发式增长,由人工智能生成的图片在社交…

讯飞星火认知大模型 VS CHATGPT3.5

2023年5月6日,科大讯飞(002230.SZ)宣布将于当日举行“讯飞星火认知大模型”成果发布会。 与其他厂商的大模型发布相比,本次发布会具有三个特点:1.全程真机互动,现场实测、现场体验;2.技术先进性不是笼统表达&#xff…

AI测试|史上最全,细数AIGC在测试领域落地的困难点

一、引言&背景 自2022年由横空出世的ChatGPT引发的各类AIGC(Generative AI)爆发以来,人们对其在各个领域的应用潜力产生了极大的兴趣。在研发领域,各种研究已经证明了Github Copilot在研发效能提高上的积极作用。 在测试领域…

ChatPDF,来了!

转自:量子位 ChatGPT生产力,又上了一个台阶! 现在,甩一个PDF过去,它能自己读,你只负责提问就行。 一篇满是专业词汇的论文,它三言两语就能解释清楚,还都是中文大白话。 而且准确性很…

ChatPDF也来了!一键上传文件即可解读,复制粘贴都省了...

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>【计算机视觉】微信技术交流群 明敏 发自 凹非寺转载自:量子位(QbitAI) ChatGPT生产力,再进阶! 现在,甩…

GPT-4 来了!这些开源的 GPT 应用又要变强了

作者:HelloGitHub-小鱼干 近日,在 GPT-3.5 发布的半年后,OpenAI 正式推出了大版本的 GPT-4,不同于 GPT-3 到 GPT-3.5 耗时两年,这次版本升级只用了半年。如果你对 OpenAI 不熟悉,答应我读下这篇《ChatGPT 会…

GPT-4王者加冕!读图做题性能炸天,凭自己就能考上斯坦福

【导读】OpenAI的GPT-4在万众瞩目中闪亮登场,多模态功能太炸裂,简直要闪瞎人类的双眼。李飞飞高徒、斯坦福博士Jim Fan表示,GPT4凭借如此强大的推理能力,已经可以自己考上斯坦福了! 果然,能打败昨天的Open…

GPT4发布,有哪些升级和应用?

引言: GPT-4是OpenAI GPT系列研究最新里程碑,GPT-4接受图像和文本输入, 是一个大型多模态模型(接受图像和文本输入,输出为文本)。本文结合OpenAI官方Blog、技术报告微软Copilot发布会内容,详细介…

OpenAI推出GPT-4:功能强过ChatGPT 能玩梗图还能做网页

雷递网 雷建平 3月15日 在人们还在熟悉ChatGPT之际,人工智能企业OpenAI又推出了更强大的GPT-4,也被称为“王炸”产品。OpenAI CEO Sam Altman 称,GPT-4 是“我们迄今为止最强大、对齐最好的模型”。 OpenAI总裁Greg Brockman说:“…

日读300篇文献的技巧

感觉自己看文章很慢,有时候也抓不住重点。 如果是英文文献的话,可能还要有点难度,毕竟英语渣渣还是需要有中文-》英文的转换过程。 最近在搞毕业论文的时候,发现了一个非常好玩的东西,大大提升了我看文章搞科研&#x…

ChatPDF也来了!一键上传文件即可解读,复制粘贴都省了

来源丨网络 ChatGPT生产力,再进阶! 现在,甩一个PDF过去,它能自己读,你只负责提问就行。 一篇满是专业词汇的论文,它三言两语就能解释清楚,还都是中文大白话。 而且准确性很赞! 论文中…

ChatGPT的5月大事记

(5-11)Google 举办 I/O 开发者大会,Google版ChatGPT史诗级更新 整场大会,Google 共提及「AI」一词近 200 次,几乎把 AI 写进了包括 Gmail、搜索、Pixel 等所有产品里面,迫切地想向所有人证明自己仍在 AI 最…

励志小哥抢先搞定GPT读图功能,单卡就能实现新SOTA,代码已开源|CVPR2023

Pine 发自 凹非寺来源 | 量子位 QbitAI 能读图的GPT-4震撼发布了!但要用它还得排队。。。 不如先试试这个~ 加上一个小模型,就能让ChatGPT、GPT-3这类目前只能理解文本的大语言模型轻松读图,各种刁钻的细节问题都能手拿把掐。 并且…

杭电小哥抢先搞定GPT读图功能,单卡就能实现新SOTA,代码已开源|CVPR2023

Pine 发自 凹非寺量子位 | 公众号 QbitAI 能读图的GPT-4震撼发布了!但要用它还得排队。。。 不如先试试这个~ 加上一个小模型,就能让ChatGPT、GPT-3这类目前只能理解文本的大语言模型轻松读图,各种刁钻的细节问题都能手拿把掐。 并…