Python网络爬虫实战pdf下载pdf下载

Python网络爬虫实战百度网盘pdf下载

作者:
简介:本篇主要提供Python网络爬虫实战pdf下载
出版社:清华大学出版社
出版时间:2019-04
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

产品特色

内容简介

本书介绍如何利用Python进行网络爬虫程序的开发,从Python语言的基本特性入手,详细介绍了Python爬虫开发的相关知识,涉及HTTP、HTML、JavaScript、正则表达式、自然语言处理、数据科学等内容。全书共分为14章,包括Python基础知识、网站分析、网页解析、Python文件的读写、Python与数据库、AJAX技术、模拟登录、文本与数据分析、网站测试、Scrapy爬虫框架、爬虫性能等多个主题,内容覆盖网络抓取与爬虫编程中的主要知识和技术,在重视理论基础的前提下从实用性和丰富度出发,结合实例演示了编写爬虫程序的核心流程。

本书适合Python语言初学者、网络爬虫技术爱好者、数据分析从业人员以及高等院校计算机科学、软件工程等相关专业的师生阅读。


目录

目录

基础篇


第1章Python与网络爬虫


1.1Python语言


1.1.1什么是Python


1.1.2Python的应用现状


1.2Python的安装与开发环境配置


1.2.1在Windows上安装


1.2.2在Ubuntu和Mac OS上安装


1.2.3PyCharm的使用


1.2.4Jupyter Notebook


1.3Python的基本语法


1.3.1数据类型


1.3.2逻辑语句


1.3.3Python中的函数与类


1.3.4如何学习Python


1.4互联网、HTTP与HTML


1.4.1互联网与HTTP协议


1.4.2HTML


1.5HelloSpider


1.5.1第一个爬虫程序


1.5.2对爬虫程序的思考


1.6调研网站


1.6.1网站的robots.txt与Sitemap


1.6.2查看网站所用的技术


1.6.3查看网站所有者的信息


1.6.4使用开发者工具检查网页


1.7本章小结


第2章数据的采集


2.1从抓取开始


2.2正则表达式


2.2.1初识正则表达式


2.2.2正则表达式的简单使用


2.3BeautifulSoup


2.3.1BeautifulSoup的安装与特点


2.3.2BeautifulSoup的基本使用


2.4XPath与lxml


2.4.1XPath


2.4.2lxml与XPath的使用


2.5遍历页面


2.5.1抓取下一个页面


2.5.2完成爬虫程序


2.6使用API


2.6.1API简介


2.6.2API使用示例


2.7本章小结


第3章文件与数据的存储


3.1Python中的文件


3.1.1基本的文件读写


3.1.2序列化


3.2字符串


3.3Python与图片


3.3.1PIL与Pillow


3.3.2Python与OpenCV简介


3.4CSV文件


3.4.1CSV简介


3.4.2CSV的读写


3.5使用数据库


3.5.1使用MySQL


3.5.2使用SQLite3


3.5.3使用SQLAlchemy


3.5.4使用Redis


3.6其他类型的文档


3.7本章小结


进阶篇


第4章JavaScript与动态内容


4.1JavaScript与AJAX技术


4.1.1JavaScript语言


4.1.2AJAX


4.2抓取AJAX数据


4.2.1分析数据


4.2.2提取数据


4.3抓取动态内容


4.3.1动态渲染页面


4.3.2使用Selenium


4.3.3PyV8与Splash


4.4本章小结


第5章表单与模拟登录


5.1表单


5.1.1表单与POST


5.1.2发送表单数据


5.2Cookie


5.2.1什么是Cookie


5.2.2在Python中使用Cookie


5.3模拟登录网站


5.3.1分析网站


5.3.2通过Cookie模拟登录


5.4验证码


5.4.1图片验证码


5.4.2滑动验证


5.5本章小结


第6章数据的进一步处理


6.1Python与文本分析


6.1.1什么是文本分析


6.1.2jieba与SnowNLP


6.1.3NLTK


6.1.4文本的分类与聚类


6.2数据处理与科学计算


6.2.1从MATLAB到Python


6.2.2NumPy


6.2.3Pandas


6.2.4Matplotlib


6.2.5SciPy与SymPy


6.3本章小结


高级篇


第7章更灵活和更多样的爬虫


7.1更灵活的爬虫——以微信数据的抓取为例


7.1.1用Selenium抓取Web微信信息


7.1.2基于Python的微信API工具


7.2更多样的爬虫


7.2.1PyQuery


7.2.2在线爬虫应用平台


7.2.3使用urllib


7.3对爬虫的部署和管理


7.3.1配置远程主机


7.3.2编写本地爬虫


7.3.3部署爬虫


7.3.4查看运行结果


7.3.5使用爬虫管理框架


7.4本章小结


第8章浏览器模拟与网站测试


8.1关于测试


8.1.1什么是测试


8.1.2什么是TDD


8.2Python的单元测试


8.2.1使用unittest


8.2.2其他方法


8.3使用Python爬虫测试网站


8.4使用Selenium测试


8.4.1Selenium测试常用的网站交互


8.4.2结合Selenium进行单元测试


8.5本章小结


第9章更强大的爬虫


9.1爬虫框架


9.1.1Scrapy是什么


9.1.2Scrapy的安装与入门


9.1.3编写Scrapy爬虫


9.1.4其他爬虫框架


9.2网站反爬虫


9.2.1反爬虫的策略


9.2.2伪装headers


9.2.3使用代理


9.2.4访问频率


9.3多进程与分布式


9.3.1多进程编程与爬虫抓取


9.3.2分布式爬虫


9.4本章小结


实践篇


第10章爬虫实践: 下载网页中的小说和购物评论


10.1下载网络小说


10.1.1分析网页


10.1.2编写爬虫


10.1.3运行并查看TXT文件


10.2下载购物评论


10.2.1查看网络数据


10.2.2编写爬虫


10.2.3数据下载结果与爬虫分析


10.3本章小结


第11章爬虫实践: 保存感兴趣的图片


11.1豆瓣网站分析与爬虫设计


11.1.1从需求出发


11.1.2处理登录问题


11.2编写爬虫程序


11.2.1爬虫脚本


11.2.2程序分析


11.3运行并查看结果


11.4本章小结


第12章爬虫实践: 网上影评分析


12.1需求分析与爬虫设计


12.1.1网页分析


12.1.2函数设计


12.2编写爬虫


12.2.1编写程序


12.2.2可能的改进


12.3本章小结


第13章爬虫实践: 使用爬虫下载网页


13.1设计抓取程序


13.2运行程序


13.3展示网页


第14章爬虫实践: 使用爬虫框架


14.1Gain框架


14.2使用Gain做简单抓取


14.3PySpider框架


14.4使用PySpider进行抓取


附录A


A.1Python中的一些重要概念


A.1.1*args与**kwargs的使用


A.1.2global关键词


A.1.3enumerate枚举


A.1.4迭代器与生成器


A.2Python中的常用模块


A.2.1collections


A.2.2arrow


A.2.3timeit


A.2.4pickle


A.2.5os


A.2.6sys


A.2.7itertools


A.2.8functools


A.2.9threading、queue与multiprocessing


A.3requests库


A.3.1requests基础


A.3.2更多用法


A.4正则表达式


A.4.1什么是正则表达式


A.4.2正则表达式的基础语法


参考文献



精彩书摘

第3章文件与数据的存储

Python以简洁见长,在其他语言中比较复杂的文件读写和数据IO,在Python中由于比较简单的语法和丰富的类库而显得尤为方便。本章将从最简单的文本文件的读写出发,重点介绍CSV文件的读写和操作数据库,同时介绍一些其他形式的数据的存储方式。

3.1Python中的文件

3.1.1基本的文件读写


谈到Python中的文件读写,总会使人想到“open”关键字,其最基本的操作如下面的示例:




# 最朴素的open()方法


f=open('filename.text','r')


# 做点事情


f.close()








# 使用with,在语句块结束时会自动关闭


with open('t1.text','rt') as f: # r代表read,t代表text,一般“t”为默认,可省略


content=f.read()




with open('t1.txt','rt') as f:


for line in f:


print(line)


with open('t2.txt', 'wt') as f:


f.write(content) # 写入




append_str='append'


with open('t2.text','at') as f:


# 在已有内容上追加写入,如果使用“w”,则已有内容会被清除


f.write(append_str)


# 文件的读写操作默认使用系统编码,一般为utf8


# 使用encoding设置编码方式


with open('t2.txt', 'wt',encoding='ascii') as f:


f.write(content)


# 编码错误总是很烦人,如果用户觉得有必要暂时忽略,可以如下


with open('t2.txt', 'wt',errors='ignore') as f: # 忽略错误的字符


f.write(content) # 写入


with open('t2.txt', 'wt',errors='replace') as f: # 替换错误的字符


f.write(content) # 写入




# 重定向print()函数的输出


with open('redirect.txt', 'wt') as f:


print('your text', file=f)




# 读写字节数据,例如图片、音频


with open('filename.bin', 'rb') as f:


data=f.read()




with open('filename.bin', 'wb') as f:


f.write(b'Hello World')




# 从字节数据中读写文本(字符串),需要使用编码和解码


with open('filename.bin', 'rb') as f:


text=f.read(20).decode('utf-8')




with open('filename.bin', 'wb') as f:


f.write('Hello World'.encode('utf-8'))





用户不难发现,在open()的参数中,第一个是文件路径,第二个是模式字符(串),代表了不同的文件打开方式,比较常用的是“r”(代表读)、“w”(代表写)、“a”(代表写,并追加内容),“w”和“a”经常引起混淆,其区别在于,如果用“w”模式打开一个已存在的文件,会清空文件里的内容数据,重新写入新的内容,如果用“a”,不会清空原有数据,而是继续追加写入内容。对模式字符(串)的详细解释见图31。


前言/序言

前言

网络爬虫(Web Crawler)是指一类能够自动化访问网络并抓取某些信息的程序,有时候也被称为“网络机器人”。它们被广泛用于互联网搜索引擎及各种网站的开发中,同时也是大数据和数据分析领域中的重要角色。爬虫可以按一定的逻辑大批量采集目标页面内容,并对数据做进一步处理,人们借此能够更好、更快地获得并使用他们感兴趣的信息,从而方便地完成很多有价值的工作。

Python是一种解释型、面向对象的、动态数据类型的高级程序设计语言,Python语法简洁、功能强大,在众多高级语言中拥有十分出色的编写效率,同时还拥有活跃的开源社区和海量程序库,十分适合进行网络内容的抓取和处理。本书将以Python语言为基础,由浅入深地探讨网络爬虫技术,同时通过具体的程序编写和实践来帮助读者了解和学习Python爬虫。

本书共分为14章,其中第1~3章为基础篇,第4~6章为进阶篇,第7~9章为高级篇,第10~14章为实践篇,最后为附录。第1章、第2章介绍了Python语言和编写爬虫程序的基础知识; 第3章讨论了Python中对文件和数据的存储,涉及数据库的相关知识; 第4章、第5章的内容针对相对复杂一些的爬虫抓取任务,主要着眼于动态内容和表单登录等方面; 第6章涉及对抓取到的原始数据的深入处理和分析; 第7~9章旨在从不同视角讨论爬虫程序,基于爬虫介绍了多个不同主题的内容; 第10~14章通过一些实际的例子深入讨论爬虫编程的理论知识; 最后在附录中介绍了Python语言和爬虫编程中常用的知识和工具。

本书的主要特点如下。

 内容全面,结构清晰。本书详细介绍了网络爬虫技术的方方面面,讨论了数据抓取、数据处理和数据分析的整个流程。全书结构清晰,坚持理论知识与实践操作相结合。

 循序渐进,生动简洁。本书从最简单的Python程序示例开始,在网络爬虫的核心主题之下一步步深入,兼顾内容的广度与深度,在内容编写上使用生动简洁的阐述方式,力争详略得当。

 示例丰富,实战性强。网络爬虫是实践性、操作性非常强的技术,本书将提供丰富的代码作为读者的参考,同时对必要的术语和代码进行解释。本书从生活实际出发,选取实用性、趣味性兼具的主题进行网络爬虫实践。

 内容新颖,不落窠臼。本书中的程序代码均采用最新的Python 3版本,并使用了目前主流的各种Python框架和库来编写程序,注重内容的先进性。学习网络爬虫需要动手实践才能真正理解,本书最大限度地保证了代码与程序示例的易用性和易读性。

本书在第10~14章,针对5个爬虫实践,配有微课视频讲解,以方便读者更好地理解Python爬虫相关的理论和实践知识。

本书的编者为吕云翔、张扬,曾洪立参与了部分内容的编写及资料整理工作。

由于编者的水平有限,书中的不足在所难免,恳请广大读者批评指正。




编者2019年1月