Python爬虫入门

这里是自己学习Python爬虫踩过的坑和笔记;以及怎么入门Python爬虫。

爬虫是什么?

想象你需要收集十大最受欢迎的编程语言的变化趋势,你点开了一个拥有海量数据的网页,里面用表格写出了近几年每个月的每个编程语言的受欢迎指数。

如果手动记录表格数据,再画成折线图,恐怕你会疯掉。

事实上,爬虫就是模拟浏览器请求网页自动采集 网页上的数据。你可以用这些已经格式化、保存在本地的数据,再用于他处。

搜索引擎就是一个不断运行的爬虫系统。

为什么要用Python写爬虫?

我应该学习哪些方面的内容?

不必担心你学不会下列内容,它们都很简单,下文中我们会进行介绍。

必须:

建议:

注 : 这些并不是你必须要学习的(其中许多模块我也不了解),当你需要时再去学习(甚至套用)也不迟。

我应该怎么开始?

下图是简化后的浏览器访问一个网页的流程: pySpider.png

所以,爬虫就要伪造其中发送请求的部分,并且获取相应的响应。

实际上,Requests库已经封装好了这一切,等着你调用。

网络请求常用的类型是GetPost,你的浏览器发送的默认是Get请求。Post请求的作用是在请求中附带信息,比如你从B站的主站跳转到另一个页面,你会看到URL的问号后面里多了些东西,这些就是附带的内容。

现在,打开你的终端,打开Python,输入如下内容:

import requests # 导入reuqests库
url = "https://www.baidu.com/" #str:url
r = requests.get(url) #调用requests库的get方法,使用GET 请求url
print(r.text)#r.text就是返回的HTML内容

屏幕上输出的就是百度首页的源代码了。

这就是为什么我们要用Python写爬虫,它实在太简单了。

现在,你可以去学习Requests这个库了,点开你的搜索引擎,搜索 python3 requests ,你会看到通俗易懂的教程。

现在我会得到网页的响应了,那么如何处理这些杂乱的源代码?

你可以使用主流的几种办法: 正则表达式XpathBeautiful Soup 来提取网页中的元素。

下列是这些方法的优缺点:

方法 优点 缺点
正则表达式 简洁,应用范围广,简单 不是处理网页的最好方法,稍微慢于Xpath
Xpath 简洁,方便(可以直接生成),速度快 学习成本略高
Beautiful Soup 可读性高,极其易学 稍微慢于Xpath

我个人推荐你先学习正则表达式和Beautiful Soup。 教程:正则XpathBeautifulsoup

我得到了数据,那怎么把数据可视化?

你可以学习Matplotlib、Plotly等数据可视化包,同样的,你可以搜索python3 matplotlib来学习。

如何进阶?

网站显然不会公开让你爬他们辛辛苦苦收集来的数据,一般都会设计各种各样的反爬虫机制。(当然,如果你将数据用做商用就是犯法的)

实际上,你可以通过大量的实战来解决这个问题——网站反爬的机制没那么多,你甚至可以暴力破解——用selenium直接用浏览器作为爬虫——虽然并不推荐常用这种办法。

你可以搜索python3 爬虫案例来获得相关的案例,尝试将它们读懂,或者再次写一遍,甚至优化别人的代码,你会逐渐变好的。

共勉。

Joy © 2023 Powered by Jekyll and Theme by solid

今日诗词API Valine 评论管理 Github