如何开始写你的第一个python脚本——简单爬虫入门!

简介: 好多朋友在入门python的时候都是以爬虫入手,而网络爬虫是近几年比较流行的概念,特别是在大数据分析热门起来以后,学习网络爬虫的人越来越多,哦对,现在叫数据挖掘了!其实,一般的爬虫具有2个功能:取数据和存数据!好像说了句废话。

好多朋友在入门python的时候都是以爬虫入手,而网络爬虫是近几年比较流行的概念,特别是在大数据分析热门起来以后,学习网络爬虫的人越来越多,哦对,现在叫数据挖掘了!

其实,一般的爬虫具有2个功能:取数据和存数据!好像说了句废话。。。

而从这2个功能拓展,需要的知识就很多了:请求数据、反爬处理、页面解析、内容匹配、绕过验证码、保持登录以及数据库等等相关知识,今天我们就来说说做一个简单的爬虫,一般需要的步骤!

存数据

先说存数据,是因为在初期学习的时候,接触的少,也不需要太过于关注,随着学习的慢慢深入,我们需要保存大批量的数据的时候,就需要去学习数据库的相关知识了!这个我们随后开篇单独说明。

初期,我们抓到需要的内容后,只需要保存到本地,无非保存到文档、表格(excel)等等几个方法,这里大家只需要掌握with语句就基本可以保证需求了。大概是这样的:

with open(路径以及文件名,保存模式) as f:
    f.write(数据)        #如果是文本可直接写入,如果是其他文件,数据为二进制模式更好

当然保存到excel表格或者word文档需要用到 xlwt库(excel)、python-docx库(word),这个在网上很多,大家可以自行去学习。

取数据

啰嗦那么多,终于到正题,怎么来抓取我们想要的数据呢?我们一步步的来!

一般所谓的取网页内容,指的是通过Python脚本实现访问某个URL地址(请求数据),然后获得其所返回的内容(HTML源码,Json格式的字符串等)。然后通过解析规则(页面解析),分析出我们需要的数据并取(内容匹配)出来。

在python中实现爬虫非常方便,有大量的库可以满足我们的需求,比如先用requests库取一个url(网页)的源码

import requests                #导入库

url = '你的目标网址'

response = requests.get(url)   #请求数据

print(response.text)           #打印出数据的文本内容

这几行代码就可以获得网页的源代码,但是有时候这里面会有乱码,为什么呢?

因为中文网站中包含中文,而终端不支持gbk编码,所以我们在打印时需要把中文从gbk格式转为终端支持的编码,一般为utf-8编码。

所以我们在打印response之前,需要对它进行编码的指定(我们可以直接指定代码显示的编码格式为网页本身的编码格式,比如utf-8,网页编码格式一般都在源代码中的标签下的charset属性中指定)。加上一行即可

response.encode = 'utf-8' #指定编码格式

至此,我们已经获取了网页的源代码,接下来就是在乱七八糟的源代码中找到我们需要的内容,这里就需要用到各种匹配方式了,常用的几种方式有:正则表达式(re库),bs4(Beautifulsoup4库),xpath(lxml库)!

建议大家从正则开始学习,最后一定要看看xpath,这个在爬虫框架scrapy中用的很多!

通过各种匹配方式找到我们的内容后(注意:一般匹配出来的是列表),就到了上面所说的存数据的阶段了,这就完成了一个简单的爬虫!

当然了,在我们具体写代码的时候,会发现很多上面没有说到的内容,比如

  • 获取源代码的时候遇到反爬,根本获取不到数据
  • 有的网站需要登录后才可以拿到内容
  • 遇到验证码
  • 获取到内容后写入文件出错
  • 怎样来设计循环,获取大批量的内容甚至整站爬虫

等等,这些我们慢慢来研究!

总之,学习本身是一个漫长的过程,我们需要不断的练习来增强我们的学习兴趣,以及学到更扎实的知识!大家加油!

相关文章
|
14天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
18天前
|
数据采集 Python
【python】爬虫-西安医学院-校长信箱
本文以西安医学院-校长信箱为基础来展示爬虫案例。来介绍python爬虫。
【python】爬虫-西安医学院-校长信箱
|
2天前
|
Python
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
Python从入门到精通:深入学习面向对象编程——2.1.2继承、封装和多态的概念
|
2天前
|
存储 索引 Python
Python从入门到精通——1.3.1练习编写简单程序
Python从入门到精通——1.3.1练习编写简单程序
|
2天前
|
开发框架 前端开发 数据库
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
|
2天前
|
数据采集 数据可视化 数据处理
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
Python从入门到精通的文章3.3.1 深入学习Python库和框架:数据处理与可视化的利器
|
2天前
|
Java 数据库连接 数据处理
Python从入门到精通:3.1.2多线程与多进程编程
Python从入门到精通:3.1.2多线程与多进程编程
|
2天前
|
存储 网络协议 关系型数据库
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
|
4天前
|
数据采集 存储 JSON
Python爬虫面试:requests、BeautifulSoup与Scrapy详解
【4月更文挑战第19天】本文聚焦于Python爬虫面试中的核心库——requests、BeautifulSoup和Scrapy。讲解了它们的常见问题、易错点及应对策略。对于requests,强调了异常处理、代理设置和请求重试;BeautifulSoup部分提到选择器使用、动态内容处理和解析效率优化;而Scrapy则关注项目架构、数据存储和分布式爬虫。通过实例代码,帮助读者深化理解并提升面试表现。
13 0
|
7天前
|
数据采集 JavaScript 前端开发
使用Python打造爬虫程序之破茧而出:Python爬虫遭遇反爬虫机制及应对策略
【4月更文挑战第19天】本文探讨了Python爬虫应对反爬虫机制的策略。常见的反爬虫机制包括User-Agent检测、IP限制、动态加载内容、验证码验证和Cookie跟踪。应对策略包括设置合理User-Agent、使用代理IP、处理动态加载内容、验证码识别及维护Cookie。此外,还提到高级策略如降低请求频率、模拟人类行为、分布式爬虫和学习网站规则。开发者需不断学习新策略,同时遵守规则和法律法规,确保爬虫的稳定性和合法性。