【杂谈】爬虫基础与快速入门指南

Python杂谈——Python都能干什么呢? Python 今年 31岁了。尽管它比我的许多读者年纪还要大,但是仍然受到高度的关注,因为它可以被应用于如今你所能想得到的相当多的软件开发和操作场景。要管理本地或者云基础设施吗?Python可以。开发网站?OK,它也能行的。需要处理一个 SQL 数据库?可以。需要为 Hive 或者 Pig 定制一个功能?能做到。只是想为自己构建一个小工具?Python 就是最好的选择。需要一门支持面向对象设计的语言?Python 的特性就能满足啦。简而言之,将 Python 了解得更加深入一点点,就能让你具备可以适应范围更 阅读详情

今天给大家分享一下网络爬虫的基础知识,以及一些优秀的开源爬虫项目。网络爬虫主要是我们在面对新的任务,但自己又没有数据的时候,获取自己想要的数据的一种手段。因此我们有必要掌握一定的爬虫知识,从而更好的准备训练数据集。

作者 | 言有三

编辑 | 言有三

1 前端网页基础

在介绍爬虫之前我们先介绍一下网页基础,理解前端网页有利于我们对后面爬虫的学习,它是爬虫的基础之一。

1.网页构成

通常来说网页由三部分组成,分别为 HTML、CSS 以及 Javascript。HTML 承担网页内容,CSS 负责对网页的排版美化,而 Javascript 则使得网页更加有交互性。接下来我们分别介绍这三个部分。

(1) HTML,即 HyperText Mark-up Language,中文名超文本标记语言。超文本指的是超链接,标记指的是标签,所以 HTML 文件由一个个标签所组成的。

(2) CSS 即层叠样式表,它用来定义如何显示控制 HTML 元素,像拼图一样对 HTML 标签进行拼图,得到美观,优雅的网页显示效果。

(3) JavaScript,上面介绍的 HTML 和 CSS 只能展现一种静态的信息,缺乏交互性。我们在网页中看到的诸如轮播图等动态效果,都是基于 Javascript 实现的。在前后端分离的开发中,Javascript 还会担任一部分的逻辑操作。它的出现使得用户与网页信息之间不再只是一种冷冰冰的浏览与显示关系,而是实现了一种实时、动态、交互的页面功能。

2.URL

爬虫最主要的处理对象就是 URL,通过对 URL 的解析互取所需要的内容,然后再做进一步的处理。其格式由3部分组成:

(1) 协议,它告诉浏览器如何处理将要打开的文件。如大家常见的 http、https。

(2) 存有该资源的主机的IP地址(有时也包括端口号)

(3) 路径,一般来说不同部分之间以斜线(/)分隔。

2 爬虫基础概述

在了解了网页的一些基础知识之后,我们来继续学习一下爬虫的基础概念,以及 python 爬虫的一些库。我会首先介绍 robots.txt 文档,即 robots 协议,让大家合理、合法的进行网络爬虫。然后我们介绍 Requests 库,它可以帮助我们自动爬取 HTML 页面、自动网络请求提交 。接下来我们针对爬取回来的页面介绍数据解析库,如 lxml、re、beautifulsoup,它们可以很好地帮助我们解析 html 数据,并帮助我们提取信息。

1.robots.txt

robots.txt 即 robots 协议,存在于几乎每个网站的根目录,用来告诉我们此网站哪些数据是可以通过爬虫获取的,哪些内容是不应该被爬虫获取的。对于没有设定 robots 协议的网站,我们可以通过爬虫获取没有口令加密的数据,也就是可以获取该网站的全部数据。如果网站有 robots.txt 文档,我们就要判断是否禁止访客获取数据。

2.数据爬取

Python 拥有很多优秀的开源库,针对爬虫,python2 有 urllib1、2,python3 有自带的 urllib库。接下来我们以 python3(以下默认为 python )为例,介绍 urllib。

(1) urllib 介绍

Python urllib库官方文档链接:

https://docs.python.org/3/library/urllib.html

在这个页面中我们可以选择对应的 python 版本进行 urllib 库的学习。

(2) urllib 基础用法

urllib 中包括了四个模块,request 模块可以用来实现网页请求和响应获取;parse 模块用来解析和处理 URL;error 包含了对 request 模块产生异常的异常处理;robotparse 用来解析页面的robots.txt 文件。

从上面的代码我们可以看到,urllib.request 模块提供了最基本的构造 HTTP 请求方法,可以模拟浏览器的一个请求发起过程。同时它还带有处理 authenticaton(授权验证),redirections(重定向), cookies(浏览器 Cookies)以及其它内容。该函数会返回HTTPResposne类型的对象,使用response.read() 就可以得到返回的网页内容,再使用decode(“utf-8”)解码字符串,就可以获取网页。同时,我们还使用了正则表达表达式来提取数据,以获得我们想要的信息。

3.数据解析

我们通过上面的学习,了解了如何使用 urllib 进行数据爬取。但只对数据进行爬取是不足够的,所以我们要学习使用数据解析库,对爬取的数据进行数据解析。数据解析方面的库有:beautifulsoup4、lxml、re 等。接下来我们以 BeautifulSoup 为例,来看一下数据解析过程:

3 爬虫框架

通过上面的基本爬虫的简单学习,我们发现使用原始的爬虫存在着低效率、代码量大的缺点,一般只能用作小型项目的爬虫。接下来我们会介绍一个爬虫框架,我们现在有了基础爬虫的知识,所以这个框架我们可以快速的上手,实现中等规模的爬虫。

1.Scrap 框架介绍

Scrapy 框架是一个专门由 python 开发的,用于快速、高层次的屏幕抓取和 web 抓取框架,用于抓取 web 站点并从页面中提取结构化的数据。Scrapy 框架可以用于数据挖掘、监测和自动化测试。它提供用户进行各种类型爬虫的编写,如我们前面提到的增量式网络爬虫等。

2. Scrapy 的安装

pip install scrapy

3. Scrapy 框架的基本使用

Scrapy 框架命令分为两种,一种是全局命令,另一种是项目命令。全局命令顾名思义,就是在哪里都可以去使用,项目命令是只有在爬虫项目中才可使用的命令。全局命令和项目命令可以在命令行窗口使用 scrapy -h 来查看。

在爬虫中,我们常用的命令有:

scrapy startproject  # 创建一个爬虫项目

scrapy genspider    # 在项目下创建一个爬虫 spider 类

scrapy runspider     # 运行一个 spider 类文件

scrapy crawl            # 通过名称指定爬取信息

scrapy shell             # 使用命令行与 scrapy 交互

scrapy list                # 查看当前项目下有多少个爬虫 

4. Scrapy 使用实战

(1) 首先使用 scrapy startproject scarpy_demo 命令创建一个名为 scarpy_demo 爬虫项目.

目录结构说明:

(2) cd scarpy_demo 进入项目目录,使用 scrapy genspider demo www.baidu.com 创建一个 spider 类文件

(3) 进入 items.py 创建自己的 Item 容器类

引用这个  ScrapyDemoItem 类,在 spider/demo.py 开头加上

解析 respone 信息,并封装到 item中,再使用 Item Pipeline 管道对解析出来的 Item 数据进行清理、验证、去重、存储等操作。

开启 Item Pipeline 注释以及以 json 格式保存数据

scrapy crawl demo -o json

4 开源项目推荐

1. 图片爬虫

当我们开始一个新任务的时候,可以用搜索引擎爬小批量的数据。

GitHub 地址:https://github.com/sczhengyabin/Image-Downloader

特点:

(1) 图片种类丰富(所有类型)

(2) 爬取速度快(200张/分)

(3) 接口稳定且使用简单

但是爬取数量有限制,通常一个关键字不能超过2000张。

2. 视频爬虫

GitHub 地址:https://github.com/iawia002/annie

annie [OPTIONS] URL [URL...]

3. 复杂爬虫

GitHub 地址:https://github.com/chenusc11/flickr-crawler

(1) 注册 Flickr API Key

按照网页引导申请API Key。

(2) 调用接口

其中函数 flickr.photos_search() 可以获得大中小三种不同尺寸的图像,参数 tags 是我们的关键词。

photos=flickr.photos_search(tags=tags,tag_mode='all',per_page=number)

以上就是本次爬虫分享的主要内容,更多请查看往期链接。

转载文章请后台联系

侵权必究

往期精选

slam_toolbox 简介和使用 专为移动机器人在未知环境中实时构建地图和定位设计。它适用于2D和3D环境,支持多种机器人平台和传感器配置。 阅读详情

相关推荐

手把手教你:在联想/戴尔笔记本上安装华为电脑管家,实现多屏协同(附详细避坑步骤)

本文详细指导如何在联想、戴尔等非华为笔记本上安装华为电脑管家,实现多屏协同功能。从硬件兼容性检查到定制化安装流程,再到功能调优与异常处理,提供了一套完整的解决方案,帮助用户突破品牌限制,享受华为生态的高效办公体验。

weixin_30251829的博客 859

爬虫入门教程

文章目录前言一、学习爬虫前所需掌握的内容二、爬取数据2.1 如何存储数据2.1 获取网络数据2.2 获取网络数据json2.3 获取图片数据三、提取数据3.1 使用XPATH 前言 本文用于记录学习爬虫的过程,将持续进行更新与修正。本文所学习的案例为:爬取豆瓣电影的评分、评价等信息,进行数据分析。 一、学习爬虫前所需掌握的内容 首先我们进入豆瓣,我们要爬取电影的评分、评价等信息。 提取这些信息用处很大,例如对于评价信息,可以提取词云做一个词云图,提取里面出现最多的字眼并展现出来进行分析。 如果我们

InnerPeaceHQ的博客 7902

在Ubuntu 18下安装SIMULIA Abaqus 2020

参考资料: https://github.com/imirzov/Install-Abaqus-2019-on-Ubuntu-18.04-LTS 安装环境: Ubuntu 18.4 LTS 软件版本: SIMULIA for Linux 2020 1 准备 安装光盘及破解文件 解压光盘至一目录,不能挂载,因为要修改文件内容 /home/sunwk/Downloads/abaqus2020 更改文件权限为最大 sudo chmod -R 777 abaqus2020/ * 复制libpng12

oak619的博客 1万+

python入门指南by许半仙-《江火欲燃山》《这题超纲了》《Python入门指南》

刑侦悬疑推理 |《江火欲燃山》by 过年烤年糕简介结 局:HEC  P:江湛、季秋寒属 性:霸道狠厉只对受宠上天攻×冷清人美高岭之花警察受标 签:强强 刑侦 悬疑推理 互宠 有副cp文 案:江湛的权势如日中天,来自A市塔尖权势圈的评价是:→「人狠话不多」,附赠良心忠告:千万别招惹!跟季秋寒在一起后,他忍住抽下皮带的手:"宝贝,以后能跟你讲道理的我尽量不动手…”季秋寒是晋升速度恐...

q6q6q的专栏 5128

【Ubuntu】SMBus Host controller not enabled(虚拟机进入不了图形界面)

SMBus Host controller not enabled(虚拟机进入不了图形界面)

Cappuccino Blog 4万+

AVL-Excite新手必看:5步搞定发动机阀系系统建模(附B站视频教程)

本文为AVL-Excite新手提供发动机阀系系统建模的5步详细指南,涵盖软件环境搭建、基本结构建立、关键参数设置、仿真分析及常见问题排查。通过清晰的步骤说明和实用技巧,帮助工程师快速掌握建模方法,并附有精选B站视频教程链接,便于实践学习。

weixin_29305313的博客 511

Python爬虫入门(纯记录)

Python爬虫自学(纯记录),有些甚至忘了怎么实现的orz

Ashley_ly的博客 1195

S32K344 Bootloader实战:一个按键实现从Boot到App的无缝跳转(附完整代码)

本文详细介绍了基于NXP S32K344微控制器的Bootloader开发实战,重点解析如何通过一个硬件按键实现从Boot到App的可靠跳转。内容涵盖内存分区规划、中断向量表重映射、外设初始状态管理等核心要素,并提供了完整的代码示例和调试技巧,适用于汽车电子和工业控制等高可靠性应用场景。

weixin_29192365的博客 309

py3 爬取 Flickr

#! python3 # 11.11.2 图像网站下载 Flickr import requests, bs4, os os.chdir('E:\\pythonScripts\\files') print('请输入关键字:') kw = input() url = 'http://blog.flickr.net/?s=' + kw hd = {'User-Agent': 'Mozilla/5.0...

qq_26157089的博客 409

Android 音频源码分析——音量调节流程

源码分析基于android9.0 一、声音类型 对于大多数手机用户来说,操作手机音量按键可以看到,声音类型分为四种:媒体、铃声、闹钟、通话,但是其系统内部则分为十几种类型。 声⾳类型用来区分不同播放用途及播放设备,包含11中类型 定义在 frameworks/base/media/java/android/media/AudioSystem.java中 /** Used to identify the default audio stream volume */ public static final in

奋斗的菜鸟ing 3824

人工智能技术基础系列之:迁移学习

作者:禅与计算机程序设计艺术 1.背景介绍 随着深度学习和神经网络的快速发展,越来越多的应用场景需要处理大量的数据和复杂的任务。然而,由于计算资源、存储空间等条件的限制,传统的人工智能方法往往不能满足实际需求。因此,为了提高效率和降低成本,研究人员提出了迁移学习的概念。本篇文章将详细介绍迁移学习的基

AI天才研究院 700

小白如何入门 Python 爬虫?

本文针对初学者,我会用最简单的案例告诉你如何入门python爬虫! 想要入门Python 爬虫首先需要解决四个问题 熟悉python编程 了解HTML 了解网络爬虫的基本原理 学习使用python爬虫库 一、你应该知道什么是爬虫? 网络爬虫,其实叫作网络数据采集更容易理解。 就是通过编程向网络服务器请求数据(HTML表单),然后解析HTML,提取出自...

1005

2024-12月js逆向案例-sensor-data之vmp字段之akamai_2/3.0-(下)

akamai2/3的vmp字段逆向分析

十一姐的博客 3147

爬虫demo_【杂谈】爬虫基础与快速入门指南

今天给大家分享一下网络爬虫的基础知识,以及一些优秀的开源爬虫项目。网络爬虫主要是我们在面对新的任务,但自己又没有数据的时候,获取自己想要的数据的一种手段。因此我们有必要掌握一定的爬虫知识,从而更好的准备训练数据集。作者 | 言有三编辑 | 言有三 1 前端网页基础在介绍爬虫之前我们先介绍一下网页基础,理解前端网页有利于我们对后面爬虫的学习,它是爬虫的基础之一。1.网页构成通常来说网页由...

weixin_39759155的博客 120

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

python入门指南txt-【杂谈】爬虫基础与快速入门指南

今天给大家分享一下网络爬虫的基础知识,以及一些优秀的开源爬虫项目。网络爬虫主要是我们在面对新的任务,但自己又没有数据的时候,获取自己想要的数据的一种手段。因此我们有必要掌握一定的爬虫知识,从而更好的准备训练数据集。作者 | 言有三编辑 | 言有三1 前端网页基础在介绍爬虫之前我们先介绍一下网页基础,理解前端网页有利于我们对后面爬虫的学习,它是爬虫的基础之一。1.网页构成通常来说网页由三部分组成,分...

q6q6q的专栏 241

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

python网页爬虫指南_【杂谈】爬虫基础与快速入门指南

今天给大家分享一下网络爬虫的基础知识,以及一些优秀的开源爬虫项目。网络爬虫主要是我们在面对新的任务,但自己又没有数据的时候,获取自己想要的数据的一种手段。因此我们有必要掌握一定的爬虫知识,从而更好的准备训练数据集。作者 | 言有三编辑 | 言有三1 前端网页基础在介绍爬虫之前我们先介绍一下网页基础,理解前端网页有利于我们对后面爬虫的学习,它是爬虫的基础之一。1.网页构成通常来说网页由三部分组成,分...

weixin_39827306的博客 174

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

爬虫demo_「杂谈」爬虫基础与快速入门指南

今天给大家分享一下网络爬虫的基础知识,以及一些优秀的开源爬虫项目。网络爬虫主要是我们在面对新的任务,但自己又没有数据的时候,获取自己想要的数据的一种手段。因此我们有必要掌握一定的爬虫知识,从而更好的准备训练数据集。作者 | 言有三编辑 | 言有三1 前端网页基础在介绍爬虫之前我们先介绍一下网页基础,理解前端网页有利于我们对后面爬虫的学习,它是爬虫的基础之一。1.网页构成通常来说网页由三部分组成,分...

weixin_39617318的博客 85

python爬虫urllib文档_「杂谈」爬虫基础与快速入门指南

今天给大家分享一下网络爬虫的基础知识,以及一些优秀的开源爬虫项目。网络爬虫主要是我们在面对新的任务,但自己又没有数据的时候,获取自己想要的数据的一种手段。因此我们有必要掌握一定的爬虫知识,从而更好的准备训练数据集。作者 | 言有三编辑 | 言有三1 前端网页基础在介绍爬虫之前我们先介绍一下网页基础,理解前端网页有利于我们对后面爬虫的学习,它是爬虫的基础之一。1.网页构成通常来说网页由三部分组成,分...

weixin_31260665的博客 119

【杂谈】深度学习必备,各路免费爬虫一举拿下

在开发实际项目的时候,你经常没有足够多的数据,需要自己去想办法获取,这个时候常常需要用到爬虫。然而找来找去,很可能找了很久都找不到既免费又好用的爬虫,今天就从好的爬虫开始...

hacker_long的专栏 1034

【杂谈】GitHub上有哪些好用的爬虫(从Google百度,腾讯视频抖音,豆瓣知乎到不可描述)

在开发实际项目的时候,你经常没有足够多的数据,需要自己去想办法获取,这个时候常常需要用到爬虫。然而找来找去,很可能找了很久都找不到既免费又好用的爬虫,今天就从好的爬虫开始说起,这很可能是项目成功的开始。 作者&编辑 | 言有三 1 综述类项目与学习资料 首先给大家介绍一些非常优秀的综述和学习类项目,方便大家快速索引找到所需要的资源。 1.1、awesome-spider ...

hacker_long的专栏 3193

18.2 BeautifulSoup与Scrapy入门

在数据科学和网络开发的世界里,网络爬虫(Web Scraping)是一项强大的技能,而BeautifulSoup和Scrapy是两款广受欢迎的Python工具,能让这项技能变得更加简单和高效。本文将以生动有趣的故事情节为主线,深入介绍这两款工具的基本原理、使用方法及实际案例。通过丰富的代码示例和图表,我们将一步步带你走进网络爬虫的世界,并学会如何有效地使用BeautifulSoup和Scrapy来提取网页中的数据。

在路上的专栏 1310

【附PDF】强烈建议!所有想学Python的同学,死磕这三本书就够了!从入门到精通全搞定,所有人群皆可学,太强了!!!

全书内容充实,除去前言、附录和术语表这些内容,共分为六个部分 21 章节,涵盖了像数据结构、Python 风格的对象、并行与并发以及元编程等不同的方面,涉及的知识点从把函数视作对象,到面向对象习惯用法,再到控制流程以及元编程的工作原理等等,可以说覆盖了 Python 进阶学习中众多关键领域。第 2 版从 Python 2 升级到 Python 3,并且更新了很多示例和练习,还增加了新的章节,内容更加全面,豆瓣评分 8.7,实用性非常强,能帮助读者扎实地掌握 Python 编程基础,养成良好的编程思维习惯。

2401_86038711的博客 1208

工作杂谈(一)——要不要学python

0.前言 TIOBE 编程语言排行榜说明的是编程语言的流行程度,它主要根据搜索引擎中被搜索的频次来进行排名。 近几年排名如下: 个人感觉有点像高考报名大家都说哪个专业火差不多,主要突出的是某种语言的“火热”程度,而非好与不好。近年来,Python的排名确实不断上升,但你是否该学习它,肯定不是看这个排名,所以不要被这个排名忽悠,而要看看它的什么特点让它如此火热,它的这些特点能否吸引你?毕竟C...

图像学习之旅 663

爬虫资料

https://blog.youkuaiyun.com/hacker_long/article/details/89066859 在开发实际项目的时候,你经常没有足够多的数据,需要自己去想办法获取,这个时候常常需要用到爬虫。然而找来找去,很可能找了很久都找不到既免费又好用的爬虫,今天就从好的爬虫开始说起,这很可能是项目成功的开始。 作者&编辑 | 言有三 1 综述类...

奔跑的犀牛先生 591

python入门指南推文_Python入门好书推荐

作为当代大学生来说,相信无论是计算机专业还是金融专业、亦或是文学专业,上课或多或少都学过编程语言吧。反正小帅学英语的表哥貌似还写过网页。那么现在最热门、讨论话题最多的语言是什么呢?毫无疑问,是python!Python作为当今特别热门的一门编程语言,被广泛用于人工智能、大数据、科学计算、web开发等各个方面,当然,上述基本是针对专业开发人士的。那么对于非专业人士,就比如小帅学英语的表哥,他可能学习...

weixin_39881575的博客 115
上一篇: 【开源项目】一个GitHub项目,囊括人脸图像要读的重要论文
下一篇: 【每周CV论文】深度学习文本检测与识别入门必读文章
言有三
言有三 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄15年 3635粉丝 976原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言有三

三人行必有AI

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值