前些天发现了一个人工智能学习网站,内容深入浅出、易于理解。如果对人工智能感兴趣,不妨点击查看。
写在最前面
🌟 感谢大家的陪伴和支持,2024年争取每周二开展粉丝福利送书活动,欢迎关注 ~
第3波福利感谢 机械工业出版社 的大力支持
🚀 本期活动为大家带来的是 顶流大V“川川菜鸟”“不吃西红柿”作品《Python网络爬虫入门到实战》
京东购买链接 https://item.jd.com/14049708.html
🌈 评论区抽出两位小伙伴免费包邮送出
:此文章下任意评论,即可参与抽取书籍活动!
抽奖结果将在上一期活动评论区、新一期送书活动最前方展示。
🎉恭喜上期活动中奖粉丝:shandianchengzi、犬余,看到后请私信联系 ~
内容简介
本书介绍了Python3网络爬虫的常见技术。首先介绍了网页的基础知识,然后介绍了urllib、Requests请求库以及XPath、Beautiful Soup等解析库,接着介绍了selenium对动态网站的爬取和Scrapy爬虫框架,最后介绍了Linux基础,便于读者自主部署编写好的爬虫脚本。本书所有代码和相关素材可以到GitHub下载获取,地址为https://github.com/sfvsfv/Crawer。
本书主要面向对网络爬虫感兴趣的初学者。
作者简介
杨涵文
网名“川川”,现致力于全栈开发领域,在大数据分析与挖掘、机器学习、人工智能、网站开发等领域实战经验丰富。CSDN内容合伙人、阿里云博客专家,全网20万粉丝博主,热衷于技术研究,乐于分享。
周培源
网名“不吃西红柿”,现任Apple高级工程师。全网30万粉丝的知名技术博主、CSDN内容合伙人、华为HDZ成员、阿里云博客专家。
陈姗姗
上海工程技术大学讲师,理学博士,西澳大学联培博士,硕士生导师。发表学术论文20余篇,其中SCI检索10余篇,国际权威SCI期刊、IEEE等期刊审稿人。参与多项国家自然科学基金重点项目等。
目录
前言
第1章 HTML与CSS基础/
1.1概述引导/
1.2Hbuilder软件下载与使用/
1.3HTML基础/
1.3.1基本架构/
1.3.2标题和段落标签/
1.3.3文字标签/
1.3.4图像标签/
1.3.5超链接标签/
1.3.6块标签/
1.3.7列表标签/
1.3.8音频视频标签/
1.3.9表格标签/
1.3.10表单标签/
1.3.11框架标签/
1.4免费网页部署/
1.5为什么要使用CSS框架/
1.6选择器/
1.6.1标签选择器/
1.6.2类选择器/
1.6.3ID选择器/
1.6.4全局选择器/
1.6.5属性选择器/
1.6.6包含选择器/
1.6.7选择器的综合使用/
1.7CSS和HTML的结合方式/
1.7.1行内样式/
1.7.2内嵌样式/
1.7.3链接样式/
1.7.4导入样式/
1.7.5优先级/
1.8CSS的常见属性/
1.8.1字体属性/
1.8.2文本属性/
1.8.3尺寸属性/
1.8.4背景属性/
1.8.5制作照片墙/
1.9作业习题/
1.9.1HTML作业习题/
1.9.2CSS作业习题/Python网络爬虫入门到实战
第2章 urllib、Requests基础与实战/
2.1urllib的使用/
2.1.1urlopen网址请求/
2.1.2网页的保存和异常处理/
2.1.3构造请求对象Requests/
2.1.4添加请求头/
2.1.5SSL认证/
2.2万能视频下载/
2.3Requests中get的使用/
2.3.1Requests基础:代码获取/
2.3.2Requests基础:构建请求/
2.3.3获取cookie/
2.3.4添加请求头/
2.3.5二进制数据获取/
2.4Requests中post的使用/
2.4.1提交数据表单/
2.4.2添加请求头/
2.4.3提交json/
2.4.4普通文件上传/
2.5Requests进阶/
2.5.1URLError和HTTPError/
2.5.2Fiddler的下载与简单使用/
2.5.3登录网站/
2.5.4代理设置/
2.6实战演练/
2.6.1获取某搜索的代码/
2.6.2下载图片到本地/
2.6.3下载视频到本地/
2.6.4爬取翻译网站/目录
第3章 正则表达式基础与实战/
3.1正则表达式的定义/
3.2Python中的正则表达式/
3.3正则表达式函数/
3.3.1findall()函数/
3.3.2search()函数/
3.3.3split()函数/
3.3.4sub()函数/
3.3.5compile函数/
3.4特殊字符的使用/
3.4.1列表符/
3.4.2点符号/
3.4.3开始符和结束符/
3.4.4星号/
3.4.5加号/
3.4.6集合符号/
3.4.7或符号/
3.5特殊序列/
3.5.1匹配指定字符/
3.5.2匹配开头、结尾和中间/
3.5.3匹配数字与非数字/
3.5.4空格与非空格匹配/
3.5.5数字与字母的匹配/
3.5.6贪婪模式与非贪婪模式/
3.6集合练习/
3.6.1指定的符号匹配/
3.6.2匹配任意范围内的小写字母/
3.7匹配对象/
3.8正则实战:段子爬取/
3.9作业习题/
第4章 XPath基础与实战/
4.1开始使用XPath/
4.1.1常见的HTML操作/
4.1.2常见的XML操作/
4.1.3浏览器使用XPath调试/
4.1.4谷歌插件的安装与XPath Helper的使用/
4.1.5浏览器复制XPath/
4.2属性的匹配/
4.2.1根据具体属性匹配/
4.2.2通过属性值的字段匹配/
4.2.3属性值获取/
4.3XPath处理HTML常用方法/
4.4实战学习:房产网站爬取/
4.5多线程爬虫/
4.5.1进程和线程/
4.5.2Python中的多线程与单线程/
4.5.3单线程修改为多线程/
4.6作业习题/
第5章 Beautiful Soup基础与实战/
5.1什么是Beautiful Soup/
5.2解析器/
5.3解析库的基本使用/
5.3.1代码的排版/
5.3.2网页文档处理/
5.3.3获取节点中的文本/
5.3.4根据属性匹配/
5.4find_all方法搜索节点/
5.4.1基本使用/
5.4.2通过标签搜索/
5.4.3非参数搜索/
5.4.4CSS搜索/
5.4.5通过文本搜索/
5.4.6返回数量限制/
5.5find方法搜索节点/
5.6CSS选择器/
5.6.1通过标签名查找/
5.6.2通过标签的类名查找/
5.6.3通过标签的id查找/
5.6.4通过属性查找/
5.7实战一:爬取诗词网站/
5.8实战二:爬取求职网站/
第6章 selenium自动化测试与实战/
6.1环境搭建/
6.2单个元素定位/
6.2.1id定位/
6.2.2name定位/
6.2.3class_name定位/
6.2.4link_text定位/
6.2.5tag_name定位/
6.2.6XPath定位/
6.2.7通过CSS定位/
6.2.8使用By类定位/
6.2.9总结/
6.3元素等待/
6.3.1强制等待/
6.3.2显示等待/
6.3.3隐式等待/
6.4浏览器控制/
6.4.1控制浏览器大小/
6.4.2控制浏览器前进后退与刷新/
6.4.3文本输入输出与表单提交/
6.5鼠标控制/
6.5.1鼠标事件右键/
6.5.2鼠标双击/
6.6键盘控制/
6.7多个元素定位/
6.8文件上传/
6.9获取cookie/
6.9.1手动获取cookie/
6.9.2扫码自动获取cookie/
6.10窗口截图/
6.11策略补充/
6.11.1去除Chrome正受到自动测试软件的控制/
6.11.2添加代理IP和请求头/
6.11.3无头模式/
6.11.4其他一些选项的添加/
6.12字符验证码/
6.12.1pytesseract介绍/
6.12.2安装/
6.12.3中文支持/
6.12.4英文识别/
6.12.5简单的数字识别/
6.12.6中文识别/
6.12.7ddddocr模块的使用/
6.12.8彩色图片识别应用/
6.13自动发送QQ邮箱/
6.13.1获取授权码/
6.13.2发送文本和附件/
第7章 Scrapy框架与实战/
7.1框架介绍/
7.2Scrapy入门/
7.2.1创建项目文件/
7.2.2确定目标/
7.2.3定制Item/
7.2.4setting配置修改与使用/
7.2.5数据提取/
7.2.6实战教学/
7.2.7数据存储/
7.2.8Item Pipeline管道/
7.2.9Pipelines图片保存/
7.3实战一:图片多页下载/
7.4实战二:视频分析/
7.4.1基本搭建/
7.4.2数据提取/
7.4.3Pipelines保存数据/
7.5实战三:文字爬取/
7.5.1基本搭建/
7.5.2数据提取/
7.5.3Pipelines保存数据/
7.6Pipelines的多文件执行/
7.7日志记录/
7.7.1logging的语法/
7.7.2简单使用/
7.8使用选择器/
7.8.1Scrapy shell基本使用/
7.8.2使用XPath选择器/
7.8.3CSS选择器的语法/
7.8.4使用CSS选择器/
7.8.5嵌套选择器/
7.8.6正则选择器/
7.8.7使用相对XPaths/
7.9CrawlSpider的使用/
7.9.1爬取规则/
7.9.2setting配置修改/
7.9.3应用案例一:某宠物网站爬取/
7.9.4应用案例二:某读书网站爬取/
7.10内置图片下载器/
7.10.1基本搭建/
7.10.2数据提取/
7.10.3同步下载/
7.10.4异步下载/
7.11存储到数据库/
7.11.1同步存储/
7.11.2异步存储/
第8章 Linux基础/
8.1为什么学习Linux?/
8.2安装虚拟机/
8.2.1本地安装虚拟机(推荐)/
8.2.2免费在线Linux服务器/
8.3文件管理/
8.3.1查看目录/
8.3.2创建文件夹/
8.3.3切换目录/
8.3.4创建文件/
8.3.5删除文件和文件夹/
8.3.6复制文件/
8.3.7移动文件/
8.3.8编写文件内容/
8.3.9查看文件内容/
8.3.10搜索文件内容/
8.3.11查看文件权限/
8.3.12更改权限/
8.4进程管理/
8.5定时任务/
前言/序言
本书内容
本书通过简单易懂的案例,讲解Python语言的爬虫技术。全书共分为8章,第1章为网页的内容,第2~7章为爬虫的内容,第8章为Linux基础。
第1章:介绍了HTML和CSS的基础知识,虽然本章并不是直接与爬虫相关,但它是学习爬虫技术的基础。对于已经掌握基本网页基础的读者,可以选择跳过该章。
第2章:正式进入爬虫技术的学习阶段,这一章介绍了最基本的两个请求库(urllib和Requests),有知识点的讲解,也有实战案例的讲解。
第3章:本章对正则表达式做了详细的描述,同时有案例的实践。学完本章就可以掌握最基本的爬虫技术了。
第4章:主要介绍XPath解析库,配有实际的案例进行讲解,以帮助读者加深理解和巩固。
第5章:主要介绍另一个解析库Beautiful Soup,它在提取数据中也很方便,对相关知识点以及实际的案例都有所讲解。XPath和Beautiful Soup可以使信息的提取更加方便、快捷,是爬虫必备利器。
第6章:主要介绍selenium自动化测试。现在越来越多的网站内容是经过 JavaScript 渲染得到的,而原始 HTML 文本可能不包含任何有效内容,使用模块selenium实现模拟浏览器进行数据爬取是非常好的选择。
第7章:在大规模数据的爬取中,不太用得上基础模块,Scrapy 是目前使用最广泛的爬虫框架之一,本章介绍了Scrapy爬虫框架的详细搭建和实践。针对数据存储过程部分使用的MySql数据库,整章有多个实际的案例,以帮助读者加深理解和巩固。
第8章:主要介绍了Linux的基础知识点,以帮助读者能够在服务器部署脚本。
相关资源
本书所有代码和相关素材可以到GitHub下载获取,地址为https://github.com/sfvsfv/Crawer。关于代码的实用性需要声明:所有代码都是笔者在写书阶段编写的,如果有部分爬虫脚本失效,有可能是网站的结构发生了变化。希望读者在阅读本书的过程中,以学习笔者所介绍的方法为主。
Python网络爬虫入门到实战致谢
本书的撰写与出版得益于同行众多同类教程的启发,以及陈姗姗老师和同伴周培源的帮助,在此深表感谢。同时也感谢一路走来支持笔者的读者。由于本人水平有限,书中难免有不妥之处,诚挚期盼专家和广大读者批评指正。