失效链接处理 |
Python爬虫技?深入理解原理、技术与开?李宁 PDF 下蝲
下蝲地址Q?/strong>
版权归出版社和原作者所有,链接已删除,误买正?br style="padding: 0px; margin: 0px;" />
用户下蝲说明Q?/strong>
?sh)子版仅供预览,下蝲?4时内务必删除,支持正版Q喜Ƣ的误买正版书c:(x)
https://product.dangdang.com/28510027.html
相关截图Q?br /> ![]() 资料介:(x) 本书从实战角度系l讲?Python爬虫的核?j)知识点Qƈ通过大量的真实项目让读者熟l掌?Python爬虫技术。本书用 20多个实战案例Q完演l了(jin)使用各种技术编?Python爬虫的方式,读者可以Q意组合这些技术,完成非常复杂的爬虫应用?全书?20章,分ؓ(f) 5。第 1基知识Q第 1?章)(j)Q主要包?Pythonq行环境的搭建?HTTP基础、网基Q?HTML、CSS、JavaScript{)(j)、爬虫的基本原理?Session?Cookie。第 2网l库Q第 3?6章)(j)Q主要包括网l库 urllib、urllib3、requests?Twisted的核?j)用方法,如发?HTTPh、处理超时、设|?HTTPh头、搭建和使用代理、解析链接?Robots协议{。第 3解析库Q第 7?10章)(j)Q主要包?3个常用解析库Q?lxml、Beautiful Soup?pyqueryQ的使用Ҏ(gu)Q同时介l多U用于分?HTML代码的技术,如正则表辑ּ?XPath、CSS选择器、方法选择器等。第 4数据存储(W?11?2章)(j)Q主要包?Python中数据存储的解决Ҏ(gu)Q如文g存储和数据库存储Q其中数据库存储包括多种数据库,如本地数据库 SQLite、网l数据库 MySQL以及(qing)文档数据?MongoDB。第 5爬虫高U应用(W?13?20章)(j)Q主要包?Python爬虫的一些高U技术,如抓取异步数据?Selenium、Splash、抓取移?App数据?Appium、多U程爬虫、爬虫框?ScrapyQ?后给Z个综合的实战案例Q综合了(jin) Python爬虫、数据存储?PyQt5、多U程、数据可视化、Web{多U技术实C个可视化爬虫?本书可以作ؓ(f)q大计算Y件技术开发者、互联网技术研Ih员学?ldquo;爬虫技?rdquo;的参考用书。也可以作ؓ(f)高等院校计算机科学与技术、Y件工E、h工智能等专业的教学参考用书?/span> 资料目录Q?/strong>
W?1基知识 1.1 安装官方?Pythonq行环境 .........................2 1.2 配置 PATH环境变量.....................................5 1.3 安装 Anaconda Python开发环?...................6 1.4 安装 PyCharm ...............................................7 1.5 配置 PyCharm ...............................................8 1.6 结 ........................................................... 10 W?2章爬虫基.......................................11 2.1 HTTP基础...................................................... 11 2.1.1 URI?URL ........................................ 11 2.1.2 文?................................................ 12 2.1.3 HTTP?HTTPS ................................. 12 2.1.4 HTTP的请求过E?............................... 15 2.1.5 h .................................................... 17 2.1.6 响应 .................................................... 20 2.2 |页基础 ........................................................ 23 2.2.1 HTML ................................................. 23 2.2.2 CSS .................................................... 24 2.2.3 CSS选择?........................................ 25 2.2.4 JavaScript ........................................... 27 2.3 爬虫的基本原?.............................................. 27 2.3.1 爬虫的分c?......................................... 27 2.3.2 爬虫抓取数据的方式和手段 ................. 28 2.4 Session?Cookie ........................................... 28 2.4.1 ?rn)态页面和动态页?........................... 29 2.4.2 无状?HTTP?Cookie ...................... 30 2.4.3 利用 Session?Cookie保持状?......... 30 2.4.4 查看|站?Cookie .............................. 31 2.4.5 HTTP状态何时会(x)失效 ........................ 32 CONTENTS ??br style="margin: 0px; padding: 0px;" /> 2.5 实战案例Q抓取所有的|络资源 ..................... 33 2.6 实战案例Q抓取博客文章列?......................... 37 2.7 结 ............................................................... 40
W?2网l库 3.1 urllib?...................................................... 42 3.2 发送请求与获得响应 ....................................... 43
3.2.1 ?urlopen函数发?HTTP GETh .................................................... 43 3.2.4 讄 HTTPh?.............................. 46 3.2.5 讄中文 HTTPh?....................... 48 3.2.6 h基础验证面 ............................... 50 3.2.7 搭徏代理与用代?........................... 54 3.2.8 d和设|?Cookie .............................. 56 3.3 异常处理 ........................................................ 60 3.3.1 URLError ............................................60 3.3.2 HTTPError ..........................................61 3.4 解析链接 ........................................................ 62
3.4.1 拆分与合q?URLQurlparse?urlunparseQ?....................... 62 3.4.4 URL~码QurlencodeQ?........................ 65 3.4.5 ~码与解码(quote?unquoteQ?.......... 66 3.4.6 参数转换Qparse_qs?parse_qslQ?........ 66 3.5 Robots协议 .................................................... 67 3.5.1 Robots协议?................................. 67 3.5.2 分析 Robots协议 ................................ 68 3.6 结 ............................................................... 69 W?4章网l库 urllib3 ............................... 70 4.1 urllib3?.................................................... 70 4.2 urllib3模块 .................................................... 70 4.3 发?HTTP GETh ...................................... 71 4.4 发?HTTP POSTh .................................... 72 4.5 HTTPh?.................................................. 74 4.6 HTTP响应?.................................................. 76 4.7 上传文g ........................................................ 76 4.8 时 ............................................................... 78 4.9 结 ............................................................... 79 W?5章网l库 requests ........................... 80 5.1 基本用法 ........................................................ 80 5.1.1 requests?HelloWorld ........................ 81 5.1.2 GETh ............................................ 81 5.1.3 d HTTPh?.............................. 82 5.1.4 抓取二进制数?.................................. 83 5.1.5 POSTh .......................................... 84 5.1.6 响应数据 ............................................. 85 5.2 高用法 ........................................................ 87 5.2.1 上传文g ............................................. 88 5.2.2 处理 Cookie ........................................ 89 5.2.3 使用同一个会(x)话(SessionQ?.................. 90 5.2.4 SSL证书验证...................................... 91 5.2.5 使用代理 ............................................. 94 5.2.6 时 .................................................... 95 5.2.7 w䆾验证 ............................................. 97 5.2.8 请求打?......................................... 97 5.3 结 ............................................................... 98 W?6?Twisted|络框架.......................... 99 6.1 异步~程模型 ................................................. 99 6.2 ReactorQ反应堆Q模?................................. 101 6.3 HelloWorldQTwisted框架 ............................ 101 6.4 ?Twisted实现旉戛_L(fng)........................ 103 6.5 ?Twisted实现旉x务端........................ 104 6.6 结 ............................................................. 105
W?3解析库 7.1 使用正则表达?............................................ 108 7.1.1 使用 matchҎ(gu)匚w字符?.............. 108
7.1.2 使用 searchҎ(gu)在一个字W串中查找模?........................................... 109 7.1.4 匚wM单个字符 ............................. 111 7.1.5 使用字符?....................................... 112 7.1.6 重复、可选和Ҏ(gu)字符 ...................... 114 7.1.7 分组 .................................................. 117
7.1.8 匚w字符串的起始和结以?qing)单词边?........................................... 118 7.1.11 使用 split分隔字符?...................... 122 7.2 一些常用的正则表达?................................. 123 7.3 目实战Q抓取小说目录和全文 ................... 124 7.4 目实战Q抓取猫眼电(sh)?Top100榜单 .......... 128 7.5 目实战Q抓取糗事百U网的段?................ 133 7.6 结 ............................................................. 136 W?8?lxml?XPath ............................. 137 8.1 lxml基础...................................................... 137 8.1.1 安装 lxml .......................................... 137 8.1.2 操作 XML ......................................... 138 8.1.3 操作 HTML ....................................... 140 8.2 XPath ........................................................... 141 8.2.1 XPath概述 ........................................ 141 8.2.2 使用 XPath ........................................ 141 8.2.3 选取所有节?.................................... 143 8.2.4 选取子节?....................................... 145 8.2.5 选取父节?....................................... 146 8.2.6 属性匹配与获取 ................................ 146 8.2.7 多属性匹?....................................... 147 8.2.8 按序选择节点 .................................... 148 8.2.9 节点轴选择 ....................................... 149
8.2.10 ?Chrome中自动获?XPath代码 .... 151 8.3 目实战Q抓取豆?Top250图书榜单 .......... 154 8.4 目实战Q抓取v点中文网的小说信?......... 158 8.5 结 ............................................................. 161 W?9?Beautiful Soup?...................... 162 9.1 Beautiful Soup?...................................... 162 9.2 Beautiful Soup基础 ...................................... 162 9.2.1 安装 Beautiful Soup .......................... 163 9.2.2 选择解析?....................................... 164 9.2.3 ~写?Beautiful SoupE序 ........ 164 9.3 节点选择?................................................... 165 9.3.1 选择节点 ........................................... 165 9.3.2 嵌套选择节点 .................................... 167 9.3.3 选择子节?....................................... 168 9.3.4 选择父节?....................................... 171 9.3.5 选择兄弟节点 .................................... 172 9.4 Ҏ(gu)选择?................................................... 174 9.4.1 find_allҎ(gu) ..................................... 174 9.4.2 findҎ(gu) ........................................... 177 9.5 CSS选择?................................................... 178 9.5.1 基本用法 ........................................... 179 9.5.2 嵌套选择节点 .................................... 180 9.5.3 获取属性g文本 ............................. 181 9.5.4 通过览器获?CSS选择器代?...... 182 9.6 实战案例Q抓取租房信?.............................. 184 9.7 实战案例Q抓取酷狗网l红歌榜 ................... 188 9.8 结 ............................................................. 191 W?10?pyquery?............................... 192 10.1 pyquery?............................................... 192 10.2 pyquery基础 ............................................... 192 10.2.1 安装 pyquery ................................... 193 10.2.2 pyquery的基本用?........................ 193 10.3 CSS选择?................................................. 194 10.4 查找节点..................................................... 196 10.4.1 查找子节?..................................... 196 10.4.2 查找父节?..................................... 197 10.4.3 查找兄弟节点 .................................. 198 10.4.4 获取节点信息 .................................. 199 10.5 修改节点..................................................... 203
10.5.1 d和移除节点的样式QaddClass?removeClassQ?.............. 204 10.6 伪类选择?................................................. 208 10.7 目实战Q抓取当当图书排行榜.................. 210
10.8 目实战Q抓取商城手机销售排行榜.... 213 W?4数据存?br style="margin: 0px; padding: 0px;" /> W?11章文件存?.................................. 222 11.1 打开文g ..................................................... 222 11.2 操作文g的基本方?................................... 224 11.2.1 L件和写文?.............................. 224 11.2.2 读行和写?..................................... 226 11.3 使用 FileInput对象d文g ....................... 227 11.4 处理 XML格式的数?................................. 228 11.4.1 d与搜?XML文g ..................... 228 11.4.2 字典转换?XML字符?................. 229 11.4.3 XML字符串{换ؓ(f)字典 .................. 231 11.5 处理 JSON格式的数?............................... 232 11.5.1 JSON字符串与字典互相转换 .......... 233 11.5.2 ?JSON字符串{换ؓ(f)cd?.......... 234 11.5.3 类实例转换?JSON字符?.......... 236
11.5.4 cd例列表与 JSON字符串互相{?................................................ 236 11.7 CSV文g存储 ............................................. 238 11.7.1 写入 CSV文g ................................ 238 11.7.2 d CSV文g ................................ 241 11.8 结 ............................................................ 241 W?12章数据库存储............................... 242 12.1 SQLite数据?............................................. 242 12.1.1 理 SQLite数据?......................... 243 12.1.2 ?Python操作 SQLite数据?......... 245 12.2 MySQL数据?........................................... 247 12.2.1 安装 MySQL ................................... 247 12.2.2 ?Python中?MySQL ................ 250 12.3 非关pd数据?.......................................... 253 12.3.1 NoSQL?................................... 253 12.3.2 MongoDB数据?........................... 253 12.3.3 pymongo模块 ................................. 255 12.4 目实战Q抓取豆瓣音乐排行榜.................. 256 12.5 目实战Q抓取豆瓣电(sh)影排行榜.................. 260 12.6 结............................................................ 264 W?5爬虫高U应?br style="margin: 0px; padding: 0px;" /> W?13章抓取异步数?........................... 266 13.1 异步加蝲?AJAX ....................................... 266 13.2 基本原理..................................................... 267 13.3 逆向工程..................................................... 270 13.4 提取l果..................................................... 274 13.5 目实战Q支持搜索功能的囄爬虫 ........... 274 13.6 目实战Q抓取图书评?..................... 279 13.7 结............................................................ 284 W?14章可见即可爬QSelenium .............. 285 14.1 安装 Selenium ............................................. 286 14.2 安装 WebDriver .......................................... 286 14.2.1 安装 ChromeDriver.......................... 287 14.2.2 ?Edge WebDriver .......................... 288 14.2.3 安装其他览器的 WebDriver .......... 289 14.3 Selenium的基本用方?........................... 289 14.4 查找节点..................................................... 293 14.4.1 查找单个节点 .................................. 293 14.4.2 查找多个节点 .................................. 295 14.5 节点交互..................................................... 297 14.6 动作?........................................................ 298 14.7 执行 JavaScript代码 ................................... 301 14.8 获取节点信息 .............................................. 302 14.9 理 Cookies ............................................... 303 14.10 改变节点的属性?..................................... 304 14.11 目实战Q抓?QQI间说说的内?......... 306 14.12 结 .......................................................... 308 W?15章基?Splash的爬?................... 309 15.1 Splash基础 ................................................. 309 15.1.1 Splash功能?.............................. 309 15.1.2 安装 Docker .................................... 310 15.1.3 安装 Splash ..................................... 310 15.2 Splash Lua脚本 .......................................... 312 15.2.1 ?Lua脚本 .............................. 312 15.2.2 异步处理 ......................................... 313 15.2.3 Splash对象属?.............................. 314 15.2.4 goҎ(gu) ........................................... 318 15.2.5 waitҎ(gu) ......................................... 319 15.2.6 jsfuncҎ(gu) ...................................... 320 15.2.7 evaljsҎ(gu) ...................................... 320 15.2.8 runjsҎ(gu) ....................................... 320 15.2.9 autoloadҎ(gu) .................................. 321 15.2.10 call_laterҎ(gu) ............................... 322 15.2.11 http_getҎ(gu) ................................. 323 15.2.12 http_postҎ(gu) ............................... 324 15.2.13 set_contentҎ(gu) ............................ 325 15.2.14 htmlҎ(gu) ...................................... 325 15.2.15 pngҎ(gu) ........................................ 326 15.2.16 jpegҎ(gu) ....................................... 326 15.2.17 harҎ(gu) ........................................ 326 15.2.18 其他Ҏ(gu) ....................................... 327 15.3 使用 CSS选择?......................................... 331 15.3.1 selectҎ(gu) ...................................... 331 15.3.2 select_allҎ(gu) ................................. 332 15.4 模拟鼠标和键盘的动作................................ 333 15.5 Splash HTTP API ........................................ 334
15.6 目实战Q?Splash Lua抓取搜烦(ch)l果 ..................................................... 338 W?16章抓取移?App的数?................. 341 16.1 使用 Charles ............................................... 341 16.1.1 抓取 HTTP数据?........................... 342 16.1.2 安装 PC端证?............................... 344 16.1.3 在手机端安装证书 ........................... 345 16.1.4 监听 HTTPS数据?......................... 346 16.2 使用 mitmproxy .......................................... 348 16.2.1 安装 mitmproxy............................... 348 16.2.2 ?PC端安?mitmproxy证书 .......... 349 16.2.3 在移动端安装 mitmproxy证书......... 352 16.2.4 mitmproxy有哪些功?.................... 353 16.2.5 讄手机的代?.............................. 353
16.2.6 ?mitmproxy监听 App的请求与响应数据 ......................................... 354 16.2.8 mitmdump?PythonҎ(gu) ............... 357 16.2.9 使用 mitmweb监听h与响?....... 361
16.3 目实战Q实时抓?ldquo;得到” App在线评 .............................................. 363
W?17章?Appium在移动端抓取数据 ... 368 17.1.1 安装 Appium桌面?........................ 368 17.1.2 配置 Android开发环?.................... 370 17.1.3 配置 iOS开发环?.......................... 371 17.2 Appium的基本用方?............................. 372 17.2.1 启动 Appium服务 ........................... 372
17.2.2 查找 Android App?Package和入?Activity................................... 374 17.3 使用 Python控制手机 App .......................... 379 17.4 AppiumPythonClient API............................. 380 17.4.1 初始化(Remotec)(j)........................ 380 17.4.2 查找元素 ......................................... 381 17.4.3 单击元素 ......................................... 381 17.4.4 屏幕拖动 ......................................... 382 17.4.5 屏幕滑动 ......................................... 382 17.4.6 拖曳操作 ......................................... 383 17.4.7 文本输入 ......................................... 383 17.4.8 动作?............................................ 383
17.5 目实战Q利?Appium抓取微信朋友圈信?............................................................ 384 W?18章多U程和多q程爬虫 .................. 389 18.1 U程与进E?................................................. 389 18.1.1 q程 ................................................ 389 18.1.2 U程 ................................................ 390 18.2 Python与线E?............................................. 390 18.2.1 使用单线E执行程?....................... 390 18.2.2 使用多线E执行程?....................... 391 18.2.3 为线E函C递参?....................... 393 18.2.4 U程和锁 ......................................... 394 18.3 高U程模块QthreadingQ?........................... 395 18.3.1 ThreadcMU程函数 ....................... 395 18.3.2 ThreadcMU程对象 ....................... 396 18.3.3 ?Threadcȝ?............................. 398 18.4 U程同步..................................................... 399 18.4.1 U程?............................................ 400 18.4.2 信号?............................................ 402 18.5 生?mdash;消费者问题与 queue模块 .............. 405 18.6 多进E?........................................................ 407
18.7 目实战Q抓取豆瓣音?Top250排行榜(多线E版Q?.................................................. 408 W?19章网l爬虫框Ӟ(x)Scrapy.............. 413 19.1 Scrapy基础知识 ......................................... 413 19.1.1 Scrapy?..................................... 413 19.1.2 Scrapy安装 ..................................... 414 19.1.3 Scrapy Shell抓取 Web资源 ............. 415 19.2 ?Scrapy~写|络爬虫 .............................. 417 19.2.1 创徏和?Scrapy工程 .................. 417 19.2.2 ?PyCharm中?Scrapy .............. 419
19.2.3 ?PyCharm中用扩展工兯?ScrapyE序 ..................................... 421 19.3 Scrapy的高U应?...................................... 431 19.3.1 处理d面 .................................... 431 19.3.2 处理带隐藏文本框的登录页?......... 434 19.3.3 通过 API抓取天气预报数据 ............ 436 19.3.4 ?CSV格式转换?JSON格式 ........ 443 19.3.5 下蝲器中间g .................................. 447 19.3.6 爬虫中间?..................................... 452 19.3.7 Item道 ........................................ 455 19.3.8 通用爬虫 ......................................... 465 19.4 结............................................................ 474 W?20章综合爬虫项目:(x)可视化爬?........ 475 20.1 目?.................................................... 475 20.2 ȝ面设计和实现 ....................................... 477 20.3 获取商品|和每商品数 ......................... 478 20.4 q发抓取商品列表 ....................................... 479 20.5 数据库操作类 .............................................. 481 20.6 情感分析..................................................... 484 20.7 抓取和分析商品评论数?............................ 485 20.8 可视化评论数?.......................................... 486
20.9 结............................................................ 488 |