ss20052008 发表于 2023-10-4 19:21:09

怎样利用 python 学习爬虫?

怎样利用 python 学习爬虫?

★小柯★ 发表于 2023-10-4 19:21:31

爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序。
从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用。
爬虫基本流程
用户获取网络数据的方式:
方式1:浏览器提交请求—>下载网页代码—>解析成页面
方式2:模拟浏览器发送请求(获取网页代码)->提取有用的数据->存放于数据库或文件中
爬虫要做的就是方式2。
入门python爬虫,10分钟就够了,这可能是我见过最简单的基础教学
1发起请求
使用http库向目标站点发起请求,即发送一个Request
Request包含:请求头、请求体等
Request模块缺陷:不能执行JS 和CSS 代码
2获取响应内容
如果服务器能正常响应,则会得到一个Response
Response包含:html,json,图片,视频等
3解析内容
解析html数据:正则表达式(RE模块)、xpath(主要使用)、beautiful soup、css
解析json数据:json模块
解析二进制数据:以wb的方式写入文件
4保存数据
数据库(MySQL,Mongdb、Redis)或 文件的形式。
————————————————
Python快乐编程——网络爬虫是计算机专业学生选修的一门重要专业扩展课。
本课程中内容覆盖全面、讲解详细,其中包括Python网络爬虫入门、爬虫基础知识、urllib与requests、网络爬虫实例、数据处理、数据库存储、抓取动态网页内容、浏览器伪装与定向爬取、初探Scrapy爬虫框架、深入Scrapy爬虫框架、Scrapy实战项目、分布式爬虫等内容。了解爬虫技术发展应用的领域与前景,激发学生的学习兴趣,领会Python在网络爬虫、数据挖掘领域的精髓。
学时分配
章目授课上机合计第1章 Python网络爬虫入门1学时0学时1学时第2章 爬虫基础知识2学时2学时4学时第3章 urllib与requests2学时0学时2学时第4章 网络爬虫实例2学时2学时4学时第5章 数据处理2学时2学时4学时第6章 数据库存储2学时2学时4学时第7章 抓取动态网页内容2学时2学时4学时第8章 浏览器伪装与定向爬虫2学时2学时4学时第9章 初探Scrapy爬虫框架2学时2学时4学时第10章 深入Scrapy爬虫框架2学时2学时4学时第11章 Scrapy实战项目2学时2学时4学时第12章 分布式爬虫2学时2学时4学时合计23学时20学时43学时课程的主要内容及基本要求
第1章 Python网络爬虫入门(1学时)
[知 识 点]
Ø 所需技能与Python版本
Ø 初识网络爬虫
Ø 搜索引擎核心
Ø 快速爬取网页示例
[重 点]
Ø 初识网络爬虫
Ø 搜索引擎核心
Ø 快速爬取网页示例
[难 点]
Ø 初识网络爬虫
Ø 搜索引擎核心
Ø 快速爬取网页示例
[基本要求]
Ø 了解网络爬虫及其应用
Ø 了解网络爬虫的结构
[实践与练习]
完成相关习题。
第2章 爬虫基础知识(4学时)
[知 识 点]
Ø Cookie的使用
Ø 正则表达式
Ø 标记语言
Ø XPath
Ø JSON
Ø BeautifulSoup
[重 点]
Ø 正则表达式
Ø 标记语言
Ø XPath
Ø JSON
[难 点]
Ø 正则表达式
Ø 标记语言
Ø XPath
Ø JSON
[基本要求]
Ø 掌握Cookiejar的使用
Ø 掌握正则表达式的使用
Ø 掌握XPath的使用
Ø 掌握JSON数据的语法
Ø 掌握BeautifulSoup的使用
[实践与练习]
完成相关习题。
第3章 urlllib与requests(2学时)
[知 识 点]
Ø urllib库
Ø 设置HTTP请求方法
Ø 异常处理
Ø requests库
[重 点]
Ø urllib库
Ø 设置HTTP请求方法
Ø 异常处理
Ø requests库
[难 点]
Ø urllib库
Ø 设置HTTP请求方法
Ø 异常处理
Ø requests库
[基本要求]
Ø 掌握urllib库的使用
Ø 掌握URLError异常处理
Ø 掌握Requests库的使用
[实践与练习]
完成相关习题。
第4章 网络爬虫实例(4学时)
[知 识 点]
Ø 图片爬虫实例
Ø 链接爬虫实例
Ø 文字爬虫实例
Ø 微信文章爬虫
Ø 多线程爬虫及实例
[重 点]
Ø 图片爬虫实例
Ø 链接爬虫实例
Ø 文字爬虫实例
Ø 微信文章爬虫
Ø 多线程爬虫及实例
[难 点]
Ø 图片爬虫实例
Ø 链接爬虫实例
Ø 文字爬虫实例
Ø 微信文章爬虫
Ø 多线程爬虫及实例
[基本要求]
Ø 掌握图片爬虫
Ø 掌握链接爬虫
Ø 掌握文字爬虫
Ø 掌握多线程爬虫
[实践与练习]
完成相关习题。
第5章 数据处理(4学时)
[知 识 点]
Ø 存储HTML正文内容
Ø 存储媒体文件
Ø Email提醒
Ø Pymysql模块
[重 点]
Ø 存储HTML正文内容
Ø 存储媒体文件
Ø Email提醒
Ø Pymysql模块
[难 点]
Ø 存储媒体文件
Ø Email提醒
Ø Pymysql模块
[基本要求]
Ø 掌握将HTML正文内容存储为JSON格式
Ø 掌握将HTML正文内容存储为CSV格式
Ø 掌握发送邮件模块的使用
Ø 掌握使用pymysql模块将数据存储到MySQL数据库
[实践与练习]
完成相关习题。
第6章 数据库存储(4学时)
[知 识 点]
Ø SQLite
Ø MongoDB
Ø Redis
[重 点]
Ø SQLite
Ø MongoDB
Ø Redis
[难 点]
Ø SQLite
Ø MongoDB
Ø Redis
[基本要求]
Ø 掌握SQLite数据库
Ø 掌握MongoDB数据库
[实践与练习]
完成相关习题。
第7章 抓取动态网页内容(4学时)
[知 识 点]
Ø JavaScript简介
Ø 爬取动态网页的工具
Ø 爬取动态网页实例
[重 点]
Ø 爬取动态网页的工具
Ø 爬取动态网页实例
[难 点]
Ø 爬取动态网页的工具
Ø 爬取动态网页实例
[基本要求]
Ø 了解JavaScript
Ø 了解动态HTML
Ø 掌握Selenium库
[实践与练习]
完成相关习题。
第8章 浏览器伪装与定向爬取(4学时)
[知 识 点]
Ø 浏览器伪装介绍
Ø 定向爬虫
[重 点]
Ø 浏览器伪装介绍
Ø 定向爬虫
[难 点]
Ø 定向爬虫
[基本要求]
Ø 掌握浏览器伪装技术
Ø 了解反爬虫机制
Ø 掌握定向爬虫
[实践与练习]
完成相关习题。
第9章 初探Scrapy爬虫框架(4学时)
[知 识点]
Ø 了解爬虫框架
Ø Scrapy介绍
Ø 常用命令
Ø 编写Spider程序
Ø Spider反爬虫机制
[重 点]
Ø 常用命令
Ø 编写Spider程序
Ø Spider反爬虫机制
[难 点]
Ø 常用命令
Ø 编写Spider程序
Ø Spider反爬虫机制
[基本要求]
Ø 掌握爬虫Scrapy框架结构
Ø 掌握爬虫Scrapy框架项目管理
Ø 掌握爬虫Scrapy框架命令工具
[实践与练习]
完成相关习题。
第10章 深入Scrapy爬虫框架(4学时)
[知 识 点]
Ø Scrapy核心架构
Ø Scrapy组件详解
Ø Scrapy数据处理
Ø Scrapy自动化爬取
Ø CrawSpider
[重 点]
Ø Scrapy组件详解
Ø Scrapy数据处理
Ø Scrapy自动化爬取
Ø CrawSpider
[难 点]
Ø Scrapy数据处理
Ø Scrapy自动化爬取
Ø CrawSpider
[基本要求]
Ø 了解Scrapy核心架构
Ø 掌握Scrapy的中文存储
Ø 掌握Scrapy数据处理流程
[实践与练习]
完成相关习题。
第11章 Scrapy实战项目(4学时)
[知 识 点]
Ø 文章类项目
Ø 图片类项目
Ø 登录类项目
[重 点]
Ø 文章类项目
Ø 图片类项目
Ø 登录类项目
[难 点]
Ø 文章类项目
Ø 图片类项目
Ø 登录类项目
[基本要求]
Ø 掌握爬取文章网站的爬虫开发
Ø 掌握爬虫项目开发的流程实现
[实践与练习]
完成相关习题。
第12章 分布式爬虫(4学时)
[知 识 点]
Ø 简单分布式爬虫
Ø Scrapy与分布式爬虫
Ø Scrapy分布式爬虫实战
Ø 去重优化
[重 点]
Ø Scrapy与分布式爬虫
Ø Scrapy分布式爬虫实战
Ø 去重优化
[难 点]
Ø Scrapy与分布式爬虫
Ø Scrapy分布式爬虫实战
Ø 去重优化
[基本要求]
Ø 掌握爬取文章网站的爬虫开发
Ø 掌握爬虫项目开发的流程实现
[实践与练习]
完成相关习题。

以上内容来自千锋教育高教产品研发部编撰,清华大学出版社的《Python快乐编程——网络爬虫》。

http://picx.zhimg.com/50/v2-4d896d8503a4b63031e55354c7229a5c_720w.jpg?source=1940ef5c
往期内容回顾

千锋教育:千锋教育Python网络爬虫—第1章 Python网络爬虫入门—所需技能与Python版本、初识网络爬虫、搜索引擎核心、快速爬取网页示例
千锋教育:千锋教育Python网络爬虫—第2章 爬虫基础知识—Cookie的使用、正则表达式、标记语言、XPath、JSON、BeautifulSoup
千锋教育:千锋教育Python网络爬虫—第3章 urllib与requests—urllib库、设置HTTP请求方法、异常处理、requests库

视频教程列表
千锋Python数据分析入门教程—Python爬虫教程—课程宣导片
千锋Python数据分析视频教程—Python爬虫教程—01.课程介绍
千锋Python数据分析视频教程—Python爬虫教程—02.爬虫到底是什么
千锋Python数据分析视频教程—Python爬虫教程—03.爬虫的应用场景
千锋Python数据分析视频教程—Python爬虫教程—04.爬虫的分类
千锋Python数据分析视频教程—Python爬虫教程—05.爬虫合法吗
千锋Python数据分析视频教程—Python爬虫教程—06.爬虫如何搞钱
千锋Python数据分析视频教程—Python爬虫教程—07.开始爬虫的准备工作
千锋Python数据分析视频教程—Python爬虫教程—08.爬虫的核心流程
千锋Python数据分析视频教程—Python爬虫教程—09数据获取前的工具介绍
千锋Python数据分析视频教程—爬虫—10.数据获取之Selenium环境准备
千锋Python数据分析教程—爬虫—11数据获取之Selenium常用API视频
千锋Python数据分析教程—爬虫—12.Selenium提取Cookie视频
千锋Python数据分析视频教程—爬虫教程—13.数据提取之跳过账号密码视频
千锋Python数据分析—爬虫—14.数据获取之双R与Chrome检查工具使用
千锋Python数据分析—爬虫—15数据获取Request获取动态和静态数据视频
千锋Python数据分析视频教程—Python爬虫教程—16.数据提取
千锋Python数据分析视频教程—Python爬虫教程—17.数据存储视频
千锋Python数据分析教程—Python爬虫教程—18.VIP音乐免费下载项目

同学们学完本 初级爬虫 课程后,可以掌握爬虫的价值体系以及入门级爬虫的编写以及应用,本课程需要有Python编程基础,学完本课程我们就可以开心的爬啊爬了!

标签号 发表于 2023-10-4 19:21:38

最近经常有小伙伴咨询,爬虫到底该怎么学,有什么爬虫学习路线可以参考下,萝卜作为非专业爬虫爱好者,今天咱们就来分享下,对于我们平时的基础爬虫或者小规模爬虫,应该掌握哪些技能、需要如何学起!
学习路线大纲


http://picx.zhimg.com/v2-24f193ecda29bbfa3e2f2d8d44674caf_r.jpg?source=1940ef5c
Python 基础

由于本篇主要介绍 Python 爬虫学习路线,所以对于 Python 基础知识,仅仅提取了最为基础的部分,应付基础爬虫完全够用了,当然,对于底层基础,肯定是掌握的越多、越牢固越好~

[*]环境搭建

[*]Python安装
[*]开发工具 - PyCharm,VS Code

[*]变量

[*]定义变量
[*]命名规则
[*]基本数据类型



[*]基本数据结构

[*]字符串
[*]列表
[*]字典
[*]集合
[*]元组

[*]流程控制

[*]条件
[*]循环



[*]函数

[*]调用函数
[*]定义函数
[*]函数参数
[*]lambda 函数

[*]面向对象编程

[*]类和对象
[*]访问限制
[*]装饰器

数据采集与解析


[*]HTTP 基本原理

[*]URI 和 URL 统一资源定位符
[*]HTTP&HTTPS 请求与响应
[*]HTML 组成原理

[*]WEB 基本原理

[*]JavaScript&HTML&CSS
[*]节点树与节点
[*]Web 加载原理
[*]静动态 Web 页面



[*]Socket 库

[*]基于 socket 协议的爬虫

[*]Requests 库

[*]requests 库的使用
[*]cookie 与 session
[*]模拟登录
[*]请求头模拟
[*]IP 代理



[*]正则表达式

[*]re 模块的使用
[*]基本字符串、数字等匹配规则
[*]贪婪与非贪婪匹配

[*]Xpath

[*]执行原理
[*]节点操作
[*]元素操作

多种采集方式


[*]同步采集

[*]requests

[*]异步采集

[*]aiohttp
[*]aiofiles



[*]Selenium

[*]环境搭建 - webdriver
[*]元素选择 - (id,css,class,xpath)
[*]模拟登录
[*]隐藏 selenium 特征

[*]AJAX

[*]Ajax 原理
[*]Ajax 请求与响应解析



[*]Pyppeteer

[*]环境安装
[*]模拟点击
[*]执行 JS 代码

存储知识


[*]本地文件

[*]os 库
[*]open 文件
[*]读写 Excel
[*]读写 CSV

[*]MySQL

[*]表结构设计
[*]同步/异步写入 MySQL



[*]Redis

[*]读写操作
[*]基本数据类型与选择

[*]MongoDB

[*]单一写入
[*]批量写入



[*]与 Pandas 结合

[*]存储成 Pandas 数据结构
[*]Pandas 基本操作

中间人代理


[*]Charles

[*]安装与配置
[*]数据拦截
[*]安卓模拟器

[*]Mitmproxy

[*]脚本编写
[*]数据截取
[*]代理响应



[*]HttpCanary

[*]基本使用

爬虫框架


[*]Scrapy

[*]环境搭建
[*]组件拆解
[*]通用爬虫
[*]分布式爬虫 - (scrapy-redis 使用,scrapy-redis 调度器)

[*]Crawley
[*]Selenium

[*]分布式部署



[*]PySpider
反爬虫知识


[*]信息校验型

[*]模拟登录
[*]Cookie 机制
[*]用户代理
[*]签名验证机制
[*]header 机制

[*]动态渲染型

[*]页面异步加载



[*]文本混淆型

[*]图文混淆 - 关键信息以图片形式给出
[*]字体反爬 - (反爬原理,编码破解)

[*]特征识别型

[*]访问频率限制 - (IP 代理池,搭建个人 IP 代理池)
[*]Selenium 特征检测 - 隐藏 Selenium 特征



[*]验证码

[*]验证码原理
[*]图文验证码
[*]点选验证码
[*]滑动验证码
[*]其他变态验证码

[*]JS 混淆

[*]JS 逆向

多终端爬虫


[*]WEB 采集
[*]APP 采集
[*]小程序采集
[*]数据去重
[*]断点采集
[*]增量采集
以上就是整理的基础爬虫所需的学习路线,当然鉴于个人水平有限,难免有不足之处,还望不吝指教!
相关法律法规


[*]遵守 Robots
[*]控制访问速率
[*]敏感信息不碰触
[*]国家安全大于天
[*]获取的数据不进行非法盈利
[*]其他违反法律法规的动作
基本上做到以上几点,我们的爬虫就是安全的,不要过度妖魔化爬虫,当然网络更不是法外之地,要做一个合格的遵纪守法好公民!
尾声

以上就是萝卜断断续续写了几天,结合个人经验,同时也参考了网上大量的视频、文章总结而成的 Python 爬虫学习路线,确实非常的不容易,如果大家觉得满意请务必点个赞

jorny004 发表于 2023-10-4 19:21:59

首先需要了解Python的基本语法,能够编写简单代码。然后需要学习Python的第三方库,例如 requests、asyncio、lxml、httpx、execjs、PIL、tls_client、scrapy、selenium、appium、wxauto 等等,关于爬虫方向的学习我可以给到以下推荐:
你在网上看到的,95%以上的都是爬虫基础,特别是各种营销号,有很多视频,没有更“高级”的东西,包括知乎上你看到的回答,95%以上都是回答一些基础(可能回答的人自己都没进阶搞过爬虫,只是道听途说),基础你随便找资料学就行了,B站视频也很多,大同小异。
进阶主要是逆向,你会发现基本上没有教程,也很少有人讲这方面的东西,爬虫入门简单,深入很难,我推荐你看以下书籍(我认为是必看的):

[*]爬虫工具推荐:spidertools
[*]爬虫代理推荐:快代理(国内HTTP代理)、免费代理、bright data(海外HTTP代理)
[*]小白未入门阶段 :《Python 编程从入门到实践》第二版,作者埃里克·马瑟斯(Eric Matthes)
[*]爬虫入门阶段:《Python3 网络爬虫开发实战》第二版,作者崔庆才
[*]反爬套路总结:《Python3 反爬虫原理与绕过实战》,作者韦世东
[*]数据产品+数据产品思维:《爬虫实战:从数据到产品》,作者贺思聪
[*]爬虫逆向进阶:《反爬虫AST原理与还原混淆实战》,作者李岳阳,卓斌;《安卓Frida逆向与抓包实战》作者陈佳林,《爬虫逆向进阶实战》作者李玺

视频方面,我只推荐进阶,也就是逆向相关的视频:
免费:

[*]JS 逆向:《K 哥爬虫》 K 哥的小助理带你由易到难学习逆向
[*]JS 逆向:《志远2021全新js逆向教程,学完这套就够了!(全套开源)》
[*]APP 逆向:《小肩膀 app逆向百集(105集)》

收费:

[*]夜幕出品 JS 逆向:《JavaScript 逆向系列课》《JavaScript 逆向高阶课》
[*]猿人学:《爬虫高阶课程》
[*]志远和小肩膀 2022 最新的 JS 逆向和 APP 逆向课程,自己在 B 站找购买方式

推荐多逛一下各大论坛:

[*]看雪安全论坛
[*]精易逆向安全
[*]夜幕爬虫论坛
[*]穿甲兵技术社区

PS:很多搞易语言的对于逆向很拿手,可以逛逛易语言的一些论坛,重要的是思路,实现的语言无所谓,也可以关注 K 哥公众号,我会分享一些 JS 逆向知识,比较适合新手。
爬虫工程师的尽头是逆向安全工程师!

sunj 发表于 2023-10-4 19:22:52

一文搞懂Python—>爬虫需要学什么,附送课程、笔记。
关于Python爬虫,我们需要学:


[*]1. Python基础语法学习(基础知识)
首先,你需要熟悉Python的基本语法,包括变量、数据类型、条件语句、循环、函数等。
[*]2. 对HTML页面的内容抓取(数据抓取)
如HTTP协议、URL、请求方法(GET、POST等)和响应状态码(如200,404等)。
[*]3. 对HTML页面的数据提取(数据提取)
爬虫通常需要从HTML中提取信息,因此你需要了解HTML标签、属性和CSS选择器。
[*]4. Scrapy框架以及scrapy-redis分布式策略(第三方框架)
requests:一个用于发送HTTP请求的库,它可以帮助你获取网页的HTML内容
BeautifulSoup:一个用于解析HTML和XML的库,它可以帮助你在HTML文档中定位和提取信息。
lxml:一个解析HTML和XML的高性能库,可以作为BeautifulSoup的替代品。
Scrapy:一个强大的爬虫框架,用于构建和管理复杂的爬虫项目
[*]6. 爬虫(Spider)、反爬虫(Anti-Spider)、反反爬虫(Anti-Anti-Spider)之间的斗争....
熟悉常见的反爬虫策略,如User-Agent伪装、IP代理、使用Selenium处理JavaScript等。
[*]7.学习数据存储
学习如何将爬取的数据存储到文件(如CSV、JSON)或数据库(如MySQL、MongoDB)中。
可选择的IDE和编译器

工欲善其事,必先利其器:

[*]IDE:PyCharm、Spyder、Visual Studio等
[*]编辑器:Vim、Sublime Text、Atom等
由于爬虫相关的内容很多,要学的知识点也琐碎,所以下面仅仅带大家了解Python爬虫,具体学习需要看完整的课程:
Python 入门教程完整版(全 547 集) - 1. ubuntu 基本安装Python 基础学习课程,从搭建环境。判断语句,再到基础的数据类型,之后对函数进行学习掌握,熟悉文件操作,初步构建面向对象的编程思想,最后以飞机大战带领同学进入 Python 的编程殿堂。
Python 进阶之 MySQL 入门教程 - 1. Mysql 入门课程介绍课程内容: 1.掌握数据库的分类;2.熟悉 SQL 介绍;3.熟悉 MySQL 介绍;4.掌握数据库基本操作;5.掌握数据的增删改查 CRUD;6.掌握 MySQL 脚本数据备份;7.掌握 Python 操作数据库 CRUD。
Python 深入浅出进阶课程 - 1. 今日目标课程亮点: 1,对于已经学习过 Python 基础学科课程,或是想深入 Python 编程的同学十分适合。 2,生动形象,浅显易懂,清晰明了。 3,针对 Python 编程进一步所需要的知识点详细讲解,构建 Python 语言的完成的编程能力。
Python 爬虫入门:180 分钟轻松获取疫情数据 - 1. 爬虫概述通用搜索引擎(Search Engine)工作原理

通用网络爬虫 从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果。
第一步:抓取网页

搜索引擎网络爬虫的基本工作流程如下:

[*]首先选取一部分的种子URL,将这些URL放入待抓取URL队列;
[*]取出待抓取URL,解析DNS得到主机的IP,并将URL对应的网页下载下来,存储进已下载网页库中,并且将这些URL放进已抓取URL队列。
[*]分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环....

http://picx.zhimg.com/50/v2-ff4457e698963a68763f0813e498fbfa_720w.jpg?source=1940ef5c

搜索引擎如何获取一个新网站的URL:


[*]1. 新网站向搜索引擎主动提交网址:(如百度http://zhanzhang.baidu.com/linksubmit/url)
[*]2. 在其他网站上设置新网站外链(尽可能处于搜索引擎爬虫爬取范围)
[*]3. 搜索引擎和DNS解析服务商(如DNSPod等)合作,新网站域名将被迅速抓取。
但是搜索引擎蜘蛛的爬行是被输入了一定的规则的,它需要遵从一些命令或文件的内容,如标注为nofollow的链接,或者是Robots协议。
Robots协议(也叫爬虫协议、机器人协议等),全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取,例如:
淘宝网:https://www.taobao.com/robots.txt
腾讯网: http://www.qq.com/robots.txt第二步:数据存储

搜索引擎通过爬虫爬取到的网页,将数据存入原始页面数据库。其中的页面数据与用户浏览器得到的HTML是完全一样的。
搜索引擎蜘蛛在抓取页面时,也做一定的重复内容检测,一旦遇到访问权重很低的网站上有大量抄袭、采集或者复制的内容,很可能就不再爬行。
第三步:预处理

搜索引擎将爬虫抓取回来的页面,进行各种步骤的预处理。

[*]提取文字
[*]中文分词
[*]消除噪音(比如版权声明文字、导航条、广告等……)
[*]索引处理
[*]链接关系计算
[*]特殊文件处理
[*]....
除了HTML文件外,搜索引擎通常还能抓取和索引以文字为基础的多种文件类型,如 PDF、Word、WPS、XLS、PPT、TXT 文件等。我们在搜索结果中也经常会看到这些文件类型。
但搜索引擎还不能处理图片、视频、Flash 这类非文字内容,也不能执行脚本和程序。
第四步:提供检索服务,网站排名

搜索引擎在对信息进行组织和处理后,为用户提供关键字检索服务,将用户检索相关的信息展示给用户。
同时会根据页面的PageRank值(链接的访问量排名)来进行网站排名,这样Rank值高的网站在搜索结果中会排名较前,当然也可以直接使用 Money 购买搜索引擎网站排名,简单粗暴。

http://pic1.zhimg.com/v2-f88a999f23bdd6b6388f9417934959d6_r.jpg?source=1940ef5c
课外阅读:Google搜索引擎的工作原理
但是,这些通用性搜索引擎也存在着一定的局限性:


[*]通用搜索引擎所返回的结果都是网页,而大多情况下,网页里90%的内容对用户来说都是无用的。
[*]不同领域、不同背景的用户往往具有不同的检索目的和需求,搜索引擎无法提供针对具体某个用户的搜索结果。
[*]万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大量出现,通用搜索引擎对这些文件无能为力,不能很好地发现和获取。
[*]通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询,无法准确理解用户的具体需求。
针对这些情况,聚焦爬虫技术得以广泛使用。

聚焦爬虫

聚焦爬虫,是"面向特定主题需求"的一种网络爬虫程序,它与通用搜索引擎爬虫的区别在于: 聚焦爬虫在实施网页抓取时会对内容进行处理筛选,尽量保证只抓取与需求相关的网页信息。
深入学习网络爬虫,就是聚焦爬虫。

pincai 发表于 2023-10-4 19:23:50

使用Python做爬虫其实很简单,这里使用一个小案例来详细介绍Python爬虫的用法,借助Python工具爬取王者荣耀英雄人物头像图片,Python爬虫爬取网页图片可以分为四步:明确目的、发送请求、数据解析、保存数据,具体步骤如下,下面一起学习。
示例工具:anconda3.7
本文讲解内容:Python爬取图片
适用范围:网页解析、图片爬取01. 明确目的

打开王者荣耀英雄介绍主页,该主页包含很多种英雄的头像图片,主页网址链接如下。
https://pvp.qq.com/web201605/herolist.shtml
http://pic1.zhimg.com/v2-c8c2223ba255f565f8bbc4f3c27a34d4_r.jpg?source=1940ef5c
02. 发送请求

使用requests库发送请求,返回状态码显示为200,服务器连接正常。
import requests
u='https://pvp.qq.com/web201605/herolist.shtml'
response=requests.get(u)
print('状态码:{}'.format(response.status_code))
if response.status_code != 200:
   pass else: print("服务器连接正常")
http://picx.zhimg.com/50/v2-90c9e2103fcb9dd494c25a0e834976b4_720w.jpg?source=1940ef5c
03. 数据解析

在数据解析之前,需要提前安装pyquery,pyquery库类似于Beautiful Soup库,初始化的时候,需要传入HTML文本来初始化一个PyQuery对象,它的初始化方式包括直接传入字符串,传入URL,传入文件名等等,这里传入URL,并且查找节点。
#解析数据
from pyquery import PyQuery
doc=PyQuery(html)
items=doc('.herolist>li')#.items()

print(items)
http://picx.zhimg.com/v2-f960c5c23594a3055d8ddd7606e64ffa_r.jpg?source=1940ef5c
同时遍历,使用find函数查找子节点,遍历爬取图片URL和图片名。
for item in items:
   url=item.find('img').attr('src')
   #print(url)
   urls='http:'+url
   name=item.find('a').text()
   #print(name)
   url_content=requests.get(urls).content04. 保存数据

最后保存数据,需要提前新建一个文件夹用于数据存储,同时,存储数据的代码需要写在for循环里面,不然只会保存一张图片。
with open('C:/Users/尚天强/Desktop/王者荣耀picture/'+name+'.jpg','wb') as file:
         file.write(url_content)
         print("正在下载%s......%s"%(name,urls))同时加一个计时器,用于计时图片爬取的时长,这里显示图片爬取共计耗时7.03秒。
import time

start=time.time()

end=time.time()
print('图片爬取共计耗时{:.2f}秒'.format(end-start))
http://pica.zhimg.com/v2-4f3e066088b2cd8270eb9644e56e70be_r.jpg?source=1940ef5c
爬取过程动态演示如下,运行过程很快。

http://picx.zhimg.com/50/v2-582f541b910accf5c74aa7f92fdeaad0_720w.jpg?source=1940ef5c
以上我们成功将王者荣耀的英雄人物头像爬取下来,代码文件中有高清头像。

http://pica.zhimg.com/v2-eca4474c1d95424dfa252afb63173646_r.jpg?source=1940ef5c
将代码进行封装,完整版代码如下,如果你也感兴趣的话可以自己实际运行试一试,爬取生成结果。
import time
start=time.time()

import requests
from pyquery import PyQuery

#确定目标
url="https://pvp.qq.com/web201605/herolist.shtml"

#发送请求
html=requests.get(url).content
#print(html)

#解析数据
doc=PyQuery(html)
items=doc('.herolist>li').items()
#print(items)

for item in items:
   url=item.find('img').attr('src')
   #print(url)
   urls='http:'+url
   name=item.find('a').text()
   #print(name)
   url_content=requests.get(urls).content

    #保存数据
   with open('C:/Users/尚天强/Desktop/王者荣耀picture/'+name+'.jpg','wb') as file:
          file.write(url_content)
          print("正在下载%s......%s"%(name,urls))

print("下载完毕")

end=time.time()
print('图片爬取共计耗时{:.2f}秒'.format(end-start))总结一下,使用Python爬取数据一共分为四步:明确目的、发送请求、数据解析、保存数据,熟练掌握以上四个步骤,即可从网页爬取数据,数据形式不限于文本、数字、图片等,如果你也感兴趣爬虫知识,想更深层次地学习Python数据分析,不妨试试知乎知学堂官方推出的『数据分析训练营』,现在仅需1毛钱即可加入训练营学习,有专业的老师1V1进行指导,感兴趣可点击下方卡片了解~
页: [1]
查看完整版本: 怎样利用 python 学习爬虫?