登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』中公Python高效开发指南Python网络爬虫综合开发

書城自編碼: 3652725
分類: 簡體書→大陸圖書→計算機/網絡程序設計
作者: 中公教育优就业研究院
國際書號(ISBN): 9787536980556
出版社: 陕西科学技术出版社
出版日期: 2021-07-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:NT$ 442

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
秦谜:重新发现秦始皇
《 秦谜:重新发现秦始皇 》

售價:NT$ 605.0
汗青堂丛书073·美食与文明(新):帝国塑造烹饪习俗的全球史
《 汗青堂丛书073·美食与文明(新):帝国塑造烹饪习俗的全球史 》

售價:NT$ 616.0
目标变革
《 目标变革 》

售價:NT$ 386.0
不确定性决策的量子理论与算法
《 不确定性决策的量子理论与算法 》

售價:NT$ 325.0
岭南画学——广州美术学院中国画学院教师作品集(全36册)
《 岭南画学——广州美术学院中国画学院教师作品集(全36册) 》

售價:NT$ 4032.0
城市更新制度建设:广州、深圳、上海的比较(第二版)
《 城市更新制度建设:广州、深圳、上海的比较(第二版) 》

售價:NT$ 778.0
越南通史(区域国别史丛书)
《 越南通史(区域国别史丛书) 》

售價:NT$ 717.0
中国国家历史(叁拾叁)
《 中国国家历史(叁拾叁) 》

售價:NT$ 381.0

建議一齊購買:

+

NT$ 490
《 设计师零基础中公UI设计师养成记零基础学Photoshop 》
+

NT$ 490
《 中公UI设计师养成记零基础学Illustrator 》
+

NT$ 360
《 中公实用Web前端开发零基础学Dreamweaver 》
+

NT$ 585
《 中公实用Web前端开发轻松学 HTML5+CSS3+JavaScript 》
+

NT$ 410
《 Java程序开发中公Java全面开发详解进阶篇Java Web技术应用 》
+

NT$ 455
《 PHP程序设计中公PHP全栈开发教程高级程序设计 》
編輯推薦:
《中公版·Python高效开发指南:Python网络爬虫综合开发》体系科学,条理清晰,语言通俗易懂,讲解深入浅出,实战性强。本书立足于Python网络爬虫开发所需的基础知识,结合实际编程中所遇到的一些问题进行重点讲解,适用于Python网络爬虫开发初学者。另外,本书也适合作为通过Python网络爬虫开发进入Web全栈开发、数据分析和人工智能领域的入门教材。
本书采用双色印刷模式,图文并茂,并提供视频讲解等增值服务。在本书的重要章节提供专业讲师的讲解视频,扫描二维码即可实现在线学习,操作便捷高效,使读者在掌握Python网络爬虫开发相关知识的基础下,进一步加强实际操作的动手能力。
內容簡介:
《中公版·Python高效开发指南:Python网络爬虫综合开发》共分为十二章,涵盖了Python网络爬虫综合开发的相关知识,对重难点内容进行了针对性讲解。本书面向Python网络爬虫开发的初学者,按照由浅入深、循序渐进的规律,从讲解网络爬虫开发基础知识,到讲解如何开发单个.py文件的Python爬虫程序,后讲解基于Scrapy爬虫框架的网络爬虫开发。
● 网络爬虫概述(章)
介绍了网络爬虫的基础知识,包括定义、分类、原理和搜索策略等概念性内容。
● Python网络爬虫开发基础(第二章)
介绍了Python开发环境的搭建,重点介绍了PyCharm的使用。另外,还详细介绍了HTTP协议的相关知识,并介绍了HTML、JavaScript和XPath。
● 开发单个.py文件的爬虫程序(第三章、第四章)
介绍了如何开发单个.py文件的Python爬虫程序,该程序采用Request模块获取数据,并采用XPath、BeautifulSoup4和PyQuery模块进行解析。
● 开发Python网络爬虫相关技术(第五章至第十章)
介绍了Python网络爬虫开发中广泛应用的技术,包括正则表达式、数据接口、数据库的使用、表单的使用、模拟登录、反反爬虫方法和Selenium模拟浏览器等,并结合丰富的小案例来展示知识点。
● Scrapy爬虫框架(第十一章、第十二章)
介绍了基于Scrapy爬虫框架的爬虫开发和分布式爬虫框架scrapy-redis,以及爬虫的部署。
內容試閱

    网络爬虫概述
    1.1网络爬虫的定义
    网络爬虫是一种按照一定的规则,自动地爬取万维网信息的程序或者脚本。网络爬虫又称网络蜘蛛(Web Spider),这是一个很形象的名字,如果将互联网看作一个蜘蛛网,那么爬虫就是在蜘蛛网上爬来爬去的蜘蛛。
    1.2网络爬虫的发展阶段
    到目前为止,网络爬虫大致可分为以下四个发展阶段。
    阶段:早期爬虫。在这一阶段,互联网基本是完全开放的,人类流量是主流,爬虫只是爬取简单的字段信息。
    第二阶段:分布式爬虫。随着互联网数据量的不断增大,爬虫需要设计成分布式架构,才能实现高效爬取。
    第三阶段:暗网爬虫。在这一阶段,互联网出现了很多新的业务,这些业务的数据之间链接很少,因此针对暗网的爬虫被设计出来。
    第四阶段:智能爬虫。在这一阶段,爬虫主要用于社交网络数据的爬取,需要应对各种各样的反爬虫技术。
    1.3网络爬虫的应用
    目前,网络爬虫的主要应用如图1-1所示,其中主要的应用有搜索引擎、数据分析、信息聚合、金融投资分析等。
    在这些应用中,如果没有网络爬虫爬取数据,那么再好的算法和模型也难以得到结果,并且没有数据进行机器学习建模,也无法形成能解决实际问题的模型。因此,在目前炙手可热的人工智能领域,网络爬虫越来越起到数据生产者的关键作用。
    图1-1网络爬虫的主要应用
    1.4网络爬虫的类型
    网络爬虫主要分为以下三种类型。
    (1)通用爬虫
    通用爬虫又称全网爬虫,目前是大型捜索引擎(如百度、搜狗、谷歌等)中内容爬取系统的重要组成部分。通用爬虫的主要目的是将互联网上的网页爬取到本地,形成一个互联网内容的副本,然后再处理形成标签索引,用户搜索时,就会返回搜索关键字与标签相关的网页。通用爬虫的爬取策略为深度优先搜索策略和广度优先搜索策略。
    (2)聚焦爬虫
    聚焦爬虫又称主题网络爬虫,是指选择性地爬取那些与预先定义好的主题相关网页的网络爬虫。
    (3)增量爬虫
    增量爬虫又称增量式网络爬虫,是指对已下载网页采取增量式更新,只爬取新产生的或者已经发生变化的网页的网络爬虫。增量爬虫能够在一定程度上保证爬取的网页尽可能是新的网页。
    上述三种网络爬虫的功能不同,使用方法也不同。例如,百度、谷歌搜索引擎是典型的增量爬虫,提供大而全的内容来满足世界各地用户的需求。随着爬虫使用越来越灵活,很多网站逐渐使用多个爬虫进行同步爬取。例如,很多视频网站都是先通过一般爬虫或者人工批量爬取内容,再提供给用户一些可选项,让用户自己给聚焦爬虫划定范围,后找到匹配度足够高的内容,整个过程极大地降低了资源和时间的消耗。
    1.5网络爬虫的原理
    网络爬虫是模拟用户在浏览器或者某个应用程序上的操作,并实现操作过程自动化的程序。
    简而言之,网络爬虫实质上是实现浏览器的功能,通过指定统一资源定位符(URL),直接返回给用户所需要的数据,而不需要人工去一步步操纵浏览器获取数据。
    网络爬虫的基本工作流程如下:
    ①选取一个初始URL,通常为网站首页的URL。
    ②将初始URL放入待爬取URL队列中。
    ③从待爬取URL队列中取出一个待爬取的URL,将该URL对应的网页下载下来,并存储到已下载网页库中。将这个URL放入已爬取URL集合中。
    ④分析已爬取URL集合中某一URL(假设该URL为A)对应的网页,获取其中的一个或全部其他URL(获取方式基于不同的搜索策略而定),设为数学意义上的集合B。循环判断B中每个URL是否属于已爬取URL集合或已检测URL集合。如果不属于,那么将B中该URL放入待爬取URL队列中;如果属于,那么判断B中下一个URL。上述循环结束后,判断A对应的网页中所有的URL是否都存在于已爬取URL集合中,若是,则将A从已爬取URL集合中删除,放入已检测URL集合中。
    ⑤判断待爬取URL队列是否为空,若不为空,则转入流程③;若为空,则结束爬取。
    需要注意的是,网络上的网页不是一直不变的,因此已检测URL集合中的网页在一段时间后有可能会发生变化。针对这个问题,需要每隔一段时间,将已检测URL集合中的所有URL恢复到已爬取URL集合中。
    1.6网络爬虫的搜索策略
    搜索引擎的网络爬虫工作方式是爬取整个网站,通常从网站首页开始爬取,然后从首页中获取本站其他网页的URL,根据这些URL爬取对应网页的内容。在爬取到的其他网页中再次获取没爬取过的网页的URL,然后通过这些URL爬取下一批网页。采用上述方式一直爬取下去,直到爬取完该网站的所有网页为止。
    如上所述,可将网络爬虫看作一个自动爬取网页的程序,它为搜索引擎从互联网上爬取网页信息,是搜索引擎的重要组成部分。
    在爬取网页时,网络爬虫一般有两种搜索策略,分别是深度优先搜索策略和广度优先搜索策略。
    1.6.1深度优先搜索策略
    采用深度优先搜索策略爬取网页的过程:选取一个初始网页的URL作为当前URL,爬取当前URL对应的网页,并获取其中的其他URL,从中选择任意一个未爬取的URL作为当前URL,继续向下爬取。若当前URL对应的网页中没有未爬取的URL,则回溯,将前一个爬取网页的URL作为当前URL,继续向下爬取,直到所有URL对应的网页都被爬取为止。
    例如,采用深度优先搜索策略爬取如图1-2所示的网站。
    图1-2采用深度优先搜索策略爬取的网站
    在图1-2中,每一个圆圈代表一个网页,分别用字母A~I命名,各个网页的优先级相同,网页之间采用箭头连接,箭头指向的一端是目标网页,另一端是源网页,箭头连接表明源网页中包含目标网页的URL。
    选取A作为初始网页,将A的URL作为当前URL,爬取A,从A中获取了B、C、D、E、F的URL。选择B的URL作为当前URL,爬取B,爬完后,由于B中没有获取URL,因此回溯到上一个A,搜索A中未爬取的URL,选择C的URL作为当前URL,爬取C。与B同理,接着爬取D和E。爬完E后,从E中获取了H的URL,于是爬取H。爬完H后,从H中获取了I的URL,于是爬取I,爬完后,由于I中没有获取URL,因此不断回溯直到A,搜索A中未爬取的URL,此时只剩F的URL未爬取,将F的URL作为当前URL,爬取F,从F中获取了G的URL,于是爬取G,爬完后,由于G中没有获取URL,因此不断回溯直到A,此时A中没有未爬取的URL,整个爬取过程结束。
    1.6.2广度优先搜索策略
    采用广度优先搜索策略爬取网页的过程:选取一个初始网页的URL作为当前URL,爬取当前URL对应的网页,并获取其中的所有未爬取URL,放入待爬取URL队列,依次爬取上述所有未爬取的URL,每次爬取都将当前URL置为正在爬取的URL。若当前URL对应的网页中没有未爬取的URL,则将待爬取队列中的队头URL作为当前URL,继续向下爬取,直到所有URL对应的网页都被爬取为止。广度优先搜索策略是爬虫常用的方式,因为这种方式可以让网络爬虫并行处理,提高爬取速度。
    例如,采用广度优先搜索策略爬取如图1-3所示的网站。
    图1-3采用广度优先搜索策略爬取的网站
    在图1-3中,每一个圆圈代表一个网页,分别用字母A~I命名,各个网页的优先级相同,网页之间采用箭头连接,箭头指向的一端是目标网页,另一端是源网页,箭头连接表明源网页中包含目标网页的URL。
    选取A作为初始网页,将A的URL作为当前URL,爬取A,从A中获取了B、C、D的URL,于是分别爬取B、C、D,每次爬取都分别将B、C、D中的未爬取URL放入待爬取URL队列中,全部爬取完后,A中已没有未爬取的URL。待爬取URL队列中的个元素为E,把E的URL作为当前URL,爬取E。E中已没有未爬取的URL,接着爬取待爬取队列中的F,然后依次爬取G、H、I,整个爬取过程结束。
    这个爬取顺序验证了爬虫是逐层进行爬取的,只有在完成上一层的爬取之后,才会爬取下一层,这就是广度优先策略爬取的过程。
    1.7反爬虫技术及解决方案
    1.7.1通过User-Agent来反爬虫
    无论是浏览器,还是爬虫程序,在向服务器发起网络请求时,都会发过去一个头文件。某网页的Request Headers如图1-4所示。
    图1-4某网页的Request Headers
    在Request Headers中,大多数字段都是浏览器向服务器“表明身份”用的。对于爬虫程序而言,需要注意的字段是User-Agent。很多网站都会建立User-Agent白名单,只有属于白名单的User-Agent才能够正常访问。例如,爬虫爬取某些网站,如果采用Requests模块的get()方法发送GET请求时没有添加User-Agent参数,那么会返回错误信息。
    应对这种反爬虫技术,可以通过在Requests模块的get()方法中设置User-Agent参数,或使用User-Agent池来解决。
    1.7.2通过IP限制来反爬虫
    网络爬虫一般对服务器是有害的,因此服务器管理员会设置一些保护程序,该程序一旦发现某个IP在短时间内频繁访问同一个网页,就会封禁这个IP,爬虫程序再请求就会直接跳转到异常提示页面,从而无法爬取正常网页的数据。
    应对这种反爬虫技术,可以通过代理IP池来解决。通过代理IP,从不同的IP进行访问,这样就不会被封禁IP了。可是代理IP的获取是一件很麻烦的事情,网上有免费的和付费的,质量参差不齐。如果企业需要,那么可以通过购买云服务来自建代理IP池。
    另外一种应对IP限制的解决方案是降低爬虫的采集速率,使HTTP请求速率略低于阈值,不触动网站的封禁IP程序。这种解决方案是以牺牲爬虫的工作效率为代价的。
    1.7.3通过JavaScript脚本来反爬虫
    网络爬虫毕竟只是人为编写的一段程序,它并不能像人类一样去应对各种变化,如验证码、滑动解锁等。例如,要爬取某个网站,在进入网站之前,会有一个验证页面来验证操作者是否为机器。对于这种验证方法,可以通过JavaScript代码生成一串随机数字,然后要求浏览器通过JavaScript的运算求出这一串数字的和,后返回给服务器。然而这样一个简单且基础的验证步骤却是爬虫程序无法完成的。
    应对这种反爬虫技术,一般要使用Selenium的WebDriver(如PhantomJS)来解决。PhantomJS在Windows中是一个.exe文件,它可以在没有图形界面的情况下完全模拟一个浏览器,因此可以轻松应对JavaScript脚本反爬虫技术。
    1.7.4通过robots.txt来反爬虫
    robots.txt是一种存放于网站根目录下的ASCII编码的文本文件,通常用于告知网络搜索引擎的网络爬虫,此网站中的哪些内容是不可以被网络

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.