清华学霸教你1小时入门 Python 爬虫,别说学长没帮你
本文内容如下:
Python 基础知识学习途径
Python开发环境的搭建
什么是爬虫?
爬虫的作用
豆瓣短评的数据爬取
适合人群:
零基础 Python 读者
具有 Python 基础读者
想学爬虫的学者
随着网络技术的发展,数据越来越变的值钱,诸多公司都在探究如何获取更多更有用的数据。万维网是大量信息的载体,如何有效提取这些有效且公开的数据并利用这些信息变成了一个巨大的挑战。
从而爬虫工程师、数据分析师、大数据工程师的岗位也越来越受欢迎。爬虫则是 Python 的一个应用领域,Python 还有诸多应用领域,如 Web 全栈开发、图形界面开发、大数据、人工智能、系统网络运维、云计算系统管理……
Python 基础知识学习途径
学习好 Python 基础对于学习 Python 爬虫具有事半功倍的效果。就像生活中的学英语一样,一个对英语一概不通的人听完别人读英语,自己也能读出来,但是要把英语读好,好好学习音标是非常有必要的。
然而 Python 的基础知识如果要系统学习,内容也较多,那么我们到底需要学习到什么程度,对于学习 Python 爬虫才是足够的呢?这里,我对学习爬虫需要掌握的 Python 基础知识进行了筛选,过滤掉了一些不必要的知识。为您提供了如下学习链接:
Python 开发环境的搭建
Python 目前流行版本两个 Python 2.x 与 Python 3.x,由于 Python 2 只会维护到2020年,因此这里建议使用 python 3 来作为我们的编程环境。
1.下载Python。
进入下载页面(https://www.python.org/downloads/release/python-362/)下载 Python3.6.2 版本即可。
提示:根据你的电脑选择,32位还是64位的安装包。
安装过程中只需要默认安装即可。安装完成后在 cmd 命令行输入 python,然后回车,如果成功进入 python 并返回 python 的版本信息,则证明 Python 环境安装成功(这里我将 Python.exe 改为了 Python3.exe)。如下图所示。
什么是爬虫?
网络爬虫(又被称为网页蜘蛛,网络机器人,在 FOAF 社区中间,更常被称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,从中获取大量的信息。
爬虫的作用主要有以下几点:
市场分析:电商分析、商圈分析、一二级市场分析等;
市场监控:电商、新闻、房源监控、票房预测、股票分析等;
商机发现:招投标情报发现、客户资料发掘、企业客户发现等;
数据分析:对某个 App 的下载量跟踪、用户分析、评论分析,虚拟货币详情分析……
爬虫基础知识补充
在开始学习爬虫知识之前,你需要了解一些网页的基本知识:
网址的构成
网页的基本构成
常见的加载模式
网页的请求过程
谷歌浏览器之 HTTP 请求分析
1.网址的构成
网站的网址一般由协议+域名+加页面构成,如 https://auction.jd.com/home.html,域名一般是固定的不会改变,能改变的则是页面(home.html),所以在爬虫的过程中我们所需要解析的就是自己编写的不同页面的URL,只有解析出各个不同页面的 URL 入口,我们才能开始爬虫(爬取网页)。
2.网页的基本构成
一般来说一个网页的页面主要有 HTML、CSS、JavaScript 构成,这里我们可以打开任意一个网页右击查看网页源代码。
HTML:是用来制作网页,简单来说就是编写网页结构。
CSS:美化网页(样式);
JavaScript: 实现网页与客户之间互动的桥梁,让网页具有丰富的生命力。
3.常见的加载模式
学习爬虫有必要了解网页常见的两种加载模式(后续爬虫过程中,经常需要用到)。
同步加载:改变网址上的某些参数会导致网页发生改变。如常见的网站翻页后网址会发生变化。
异步加载:改变网址上的参数不会使网页发生改变。如常见的网站翻页后网址不会发生变化。
4.网页的请求过程
打开浏览器,地址栏输 baidu.com,按下回车,到用户看到内容,主要经历了如下步骤:
(1)开始进行域名解析。
首先浏览器自身搜 DNS 缓存,搜 baidu.com 有没有缓存有没有过期,如果过期就结束,其次浏览器会搜索操作系统自身的 DNS 缓存并读取本地的 host 文件,浏览器发起一个 DNS 系统调用。
(2)浏览器获得 baidu.com 域名对应的 IP 地址后,发起 HTTP 三次握手。
(3)建立 TCP/IP,浏览器就可以向服务器发送 HTTP 请求。
TCP/IP 链接建立起来后,浏览器就可以向服务器发送 HTTP 请求。服务器接收到请求之后就会对请求做相应的处理,并将结果返回给浏览器。
(4)浏览器拿到资源之后对页面进行加载、解析、渲染,最后呈现给用户。
5.谷歌浏览器之 HTTP 请求分析
打开 Chrome 开发工具(这里我们以打开百度网址为例),如下图:
Elements(元素面板):使用“元素”面板可以通过自由操纵 DOM 和 CSS 来重演您网站的布局和设计。
Console(控制台面板):在开发期间,可以使用控制台面板记录诊断信息,或者使用它作为 shell,在页面上与 JavaScript 交互。
Sources(源代码面板):在源代码面板中设置断点来调试 JavaScript ,或者通过 Workspaces(工作区)连接本地文件来使用开发者工具的实时编辑器。
Network(网络面板):从发起网页页面请求 Request 后得到的各个请求资源信息(包括状态、资源类型、大小、所用时间等),并可以根据这个进行网络性能优化。
作者说:
随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。数据越来越值钱,爬虫工程师也越来越受欢迎。
需要相关爬虫资料的可以通过扫一扫备注【python】
接下来在告诉你们这几个库,也是学习爬虫,我们必须掌握的一些第三方库。
1. requests
GitHub:https://github.com/psf/requests
requests库应该是现在做爬虫最火最实用的库了,非常的人性化。有关于它的使用我之前也写过一篇文章 一起看看Python之Requests库 ,大家可以去看一下。
有关于requests最详细的使用方法,大家可以参考官方文档:https://requests.readthedocs.io/en/master/
使用小案例:
>>> import requests
>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
u'{"type":"User"...'
>>> r.json()
{u'disk_usage': 368627, u'private_gists': 484, ...}
2. urllib3
GitHub:https://github.com/urllib3/urllib3
urllib3是一个非常强大的http请求库,提供一系列的操作URL的功能。
有关于它的详细使用方法可以参考:https://urllib3.readthedocs.io/en/latest/
使用小案例:
>>> import urllib3
>>> http = urllib3.PoolManager()
>>> r = http.request('GET', 'http://httpbin.org/robots.txt')
>>> r.status
200
>>> r.data
'User-agent: *\nDisallow: /deny\n'
3.selenium
GitHub:https://github.com/SeleniumHQ/selenium
自动测试工具。一个调用浏览器的 driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。
对于这个库并非只是Python才能用,像JAVA、Python、C#等都能够使用selenium这个库
有关于Python语言如何去使用这个库,大家可以去访问https://seleniumhq.github.io/selenium/docs/api/py/ 查看官方文档
使用小案例:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://seleniumhq.org/')
4.aiohttp
GitHub:https://github.com/aio-libs/aiohttp
基于 asyncio 实现的 HTTP 框架。异步操作借助于 async/await 关键字,使用异步库进行数据抓取,可以大大提高效率。
这个属于进阶爬虫时候必须掌握的异步库。有关于aiohttp的详细操作,可以去官方文档:https://aiohttp.readthedocs.io/en/stable/
使用小案例:
import aiohttp
import asyncio
async def fetch(session, url):
async with session.get(url) as response:
return await response.text()
async def main():
async with aiohttp.ClientSession() as session:
html = await fetch(session, 'http://python.org')
print(html)
if __name__ == '__main__':
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
解析库
1、beautifulsoup
官方文档:https://www.crummy.com/software/BeautifulSoup/
html 和 XML 的解析,从网页中提取信息,同时拥有强大的API和多样解析方式。一个我经常使用的解析库,对于html的解析是非常的好用。对于写爬虫的人来说这也是必须掌握的库。
2、lxml
GitHub:https://github.com/lxml/lxml
支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高。
3、pyquery
GitHub:https://github.com/gawel/pyquery
jQuery 的 Python 实现,能够以 jQuery 的语法来操作解析 HTML 文档,易用性和解析速度都很好。
3.数据存储库
1、pymysql
GitHub:https://github.com/PyMySQL/PyMySQL
官方文档:https://pymysql.readthedocs.io/en/latest/
一个纯 Python 实现的 MySQL 客户端操作库。非常的实用、非常的简单。
2、pymongo
GitHub:https://github.com/mongodb/mongo-python-driver
官方文档:https://api.mongodb.com/python/
顾名思义,一个用于直接连接 mongodb 数据库进行查询操作的库。
3、redisdump
使用方法:https://blog.csdn.net/zhwitbird/article/details/81279406
redis-dump是将redis和json互转的工具;redis-dump是基于ruby开发,需要ruby环境,而且新版本的redis-dump要求2.2.2以上的ruby版本,centos中yum只能安装2.0版本的ruby。需要先安装ruby的管理工具rvm安装高版本的ruby;
清华学霸教你1小时入门 Python 爬虫,别说学长没帮你相关推荐
- 一小时入门Python爬虫,连我都会了!Python爬取租房数据实例
一.什么叫爬虫 爬虫,又名"网络爬虫",就是能够自动访问互联网并将网站内容下载下来的程序.它也是搜索引擎的基础,像百度和GOOGLE都是凭借强大的网络爬虫,来检索海量的互联网信息的 ...
- python爬虫爬取图片无法打开_半小时入门python爬虫爬下网站图片,不能再简单了...
阅读本文大约需要2分钟 本文旨在为没有爬虫基础的,偶尔想爬虫爬一下某个网站上的图片的初学者使用,如果你已经是对爬虫很熟悉了,下面依然有你感兴趣的东西. 我最近也才正儿八经学习了下爬虫,出于某种需要爬一 ...
- 零基础学习python爬虫_教你零基础如何入门Python爬虫!
Python爬虫好学吗?看你怎么学了.如果是自学,会难一些,毕竟有难题很难找到人帮你解答,很容易半途而废.要是你找到了一家靠谱的学校,就会容易很多.不过,这里我想教你入门Python爬虫. 一:爬虫准 ...
- Python3网络爬虫快速入门实战解析(一小时入门 Python 3 网络爬虫)
Python3网络爬虫快速入门实战解析(一小时入门 Python 3 网络爬虫) https://blog.csdn.net/u012662731/article/details/78537432 出 ...
- 手把手教你入门Python爬虫(二)
手把手教你入门Python爬虫 前言 在上一篇文章中,我们讲解到了基础的计算机网络知识,并完成了"爬取豆瓣Top250电影信息"的项目.那么这一次,作者将带领大家完成" ...
- python六小时网络爬虫入门_一小时入门 Python 3 网络爬虫
原标题:一小时入门 Python 3 网络爬虫 作者:Jack-Cui,热爱技术分享,活跃于 CSDN 和知乎,开设的<Python3网络爬虫入门>.<Python3机器学习> ...
- 一个月入门Python爬虫,轻松爬取大规模数据
如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这样一个月入门Python爬虫,轻松爬的编程语言提供越来越多的优秀工具,让爬虫 ...
- python爬虫教程入门-零基础入门Python爬虫不知道怎么学?这是入门的完整教程
原标题:零基础入门Python爬虫不知道怎么学?这是入门的完整教程 这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑 ...
- python网络爬虫教程-教你从零开始学会写 Python 爬虫
原标题:教你从零开始学会写 Python 爬虫 写爬虫总是非常吸引IT学习者,毕竟光听起来就很酷炫极客,我也知道很多人学完基础知识之后,第一个项目开发就是自己写一个爬虫玩玩. 其实懂了之后,写个爬虫脚 ...
- python爬虫入门-python爬虫入门,8分钟就够了,最简单的基础教学!
一.基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序. 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HT ...
最新文章
- 网红送餐无人车被指用人冒充AI始末:没有人工,就没有智能
- Docker中安装DB2的详细教程和DBVisualize的安装教程
- Java EE 8,当前状态是什么:自2015年底以来已完成工作的案例研究
- [探索][管理]《现在,发现你的优势》
- 今日恐慌与贪婪指数为94 贪婪程度有所上升
- 【笔试/面试】数组及其内存结构
- AutoMapper学习笔记
- PyCharm中文指南2.0
- 类的加载过程详解之过程四:类的Using使用
- trados 有道api_小白教程(四) | 你和专业翻译还差一个Trados
- 什么是Windows安全模式?Windows安全模式详解
- post请求参数校验工具param-validate
- 致所有仍然关注BreezeMaphack的朋友
- 《​社会很单纯,复杂的是人-雾满拦江》
- 术语解释(PV、UV、QPS、TPS)
- dnf剑魂buff等级上限_DNF剑魂职业定位、装备、加点、猴戏、新老换装详解
- 番茄炖牛腩做法,味美汤浓开胃爽口,牛腩入口即化,太下饭!
- 计算机由于exls表格经常卡,excel表格数据多总是卡-EXCEL表格中的不多,但是老是卡,怎么办?...
- 高斯-约当(Gauss-Jordan)消元法——c++代码实现
- php面向对象第一篇