前言
在瞬息萬變的IT時代,一群懷揣夢想的人創(chuàng)辦了千鋒教育,投身到IT培訓行業(yè)。七年來,一批批有志青年加入千鋒教育,為了夢想篤定前行。千鋒教育秉承用良心做教育的理念,為培養(yǎng)頂級IT精英而付出一切努力,為什么會有這樣的夢想,我們先來聽一聽用人企業(yè)和求職者的心聲:
現(xiàn)在符合企業(yè)需求的IT技術(shù)人才非常緊缺,對這方面的優(yōu)秀人才我們會像珍寶一樣對待,可為什么至今沒有合格的人才出現(xiàn)呢?
面試的時候,用人企業(yè)問能做什么,這個項目如何來實現(xiàn),需要多長的時間,我們當時都蒙了回答不上來。
這已經(jīng)是面試過的第十家公司了,如果再不行的話,是不是要考慮轉(zhuǎn)行了,難道大學里的四年都白學了?
這已經(jīng)是參加面試的N個求職者了,為什么都是計算機專業(yè),當問到項目如何實現(xiàn),怎么連思路都沒有呢?
這些心聲并不是個別現(xiàn)象,而是社會反映出的一種普遍現(xiàn)象。高校的IT教育與企業(yè)的真實需求存在脫節(jié),如果高校的相關(guān)課程仍然不進行更新的話,畢業(yè)生將面臨難以就業(yè)的困境,很多用人單位表示,高校畢業(yè)生表象上知識豐富,但絕大多數(shù)在實際工作中用之甚少,甚至完全用不上高校學習階段所學知識。針對上述存在的問題,國務院也作出了關(guān)于加快發(fā)展現(xiàn)代職業(yè)教育的決定。很慶幸,千鋒所做的事情就是配合高校達成產(chǎn)學合作。
千鋒教育致力于打造IT職業(yè)教育全產(chǎn)業(yè)鏈人才服務平臺,全國數(shù)十家分校,數(shù)百名講師團堅持以教學為本的方針,全國采用面對面教學,傳授企業(yè)實用技能,教學大綱實時緊跟企業(yè)需求,擁有全國一體化就業(yè)體系。千鋒的價值觀是做真實的自己,用良心做教育。
針對高校教師的服務:
(1) 千鋒教育基于近七年的教育培訓經(jīng)驗,精心設計了包含教材 授課資源 考試系統(tǒng) 測試題 輔助案例的教學資源包,節(jié)約教師的備課時間,緩解教師的教學壓力,顯著提高教學質(zhì)量。
(2) 本書配套代碼視頻,索取網(wǎng)址: http://www.codingke.com/。
(3) 本書配備了千鋒教育優(yōu)秀講師錄制的教學視頻,按本書知識結(jié)構(gòu)體系部署到了教學輔助平臺(扣丁學堂)上,可以作為教學資源使用,也可以作為備課參考。
高校教師如需索要配套教學資源,請關(guān)注(扣丁學堂)師資服務平臺,掃描下方二維碼關(guān)注微信公眾平臺索取。
扣丁學堂
針對高校學生的服務:
(1) 學IT有疑問,就找千問千知,它是一個有問必答的IT社區(qū),平臺上的專業(yè)答疑輔導老師承諾工作時間3小時內(nèi)答復您學習IT中遇到的專業(yè)問題。讀者也可以通過掃描下方的二維碼,關(guān)注千問千知微信公眾平臺,瀏覽其他學習者在學習中分享的問題和收獲。
(2) 學習太枯燥,想了解其他學校的伙伴都是怎樣學習的?你可以加入扣丁俱樂部?鄱【銟凡渴乔тh教育聯(lián)合各大校園發(fā)起的公益計劃,專門面向?qū)T有興趣的大學生提供免費的學習資源和問答服務,已有超過30多萬名學習者獲益。
就業(yè)難,難就業(yè),千鋒教育讓就業(yè)不再難!
千問千知
關(guān)于本教材
本書既可作為高等院校本、專科計算機相關(guān)專業(yè)學習Python爬蟲技術(shù)的教材,也可作為計算機Python爬蟲的培訓教材,其中包含了千鋒教育Python爬蟲課程的精彩內(nèi)容,是一本適合廣大計算機編程愛好者的優(yōu)秀讀物。
千 鋒 學 科
HTML5前端開發(fā)、Java EE分布式開發(fā)、Python全棧 人工智能、全鏈路UI/UE設計、智能物聯(lián)網(wǎng) 嵌入式、360網(wǎng)絡安全學院、大數(shù)據(jù) 人工智能培訓、全棧軟件測試、PHP全棧 服務器集群、云計算 信息安全、Unity游戲開發(fā)、區(qū)塊鏈。
千 鋒 校 區(qū)
北京|大連|廣州|成都|杭州|長沙|哈爾濱|南京|上海|深圳|武漢|鄭州|西安|青島|重慶|太原
搶紅包
本書配套源代碼、習題答案的獲取方法: 添加小千QQ號或微信號2133320438。
注意!小千會隨時發(fā)放助學金紅包。
致謝
本教材由千鋒教育高教產(chǎn)品研發(fā)團隊組織編寫,大家在這近一年里翻閱了大量Python爬蟲圖書,并從中找出它們的不足,通過反復修改最終完成了這本著作。另外,多名院校老師也參與了教材的部分編寫與指導工作,除此之外,千鋒教育500多名學員也參與到了教材的試讀工作中,他們站在初學者的角度對教材提供了許多寶貴的修改意見,在此一并表示衷心的感謝。
意 見 反 饋
在本書的編寫過程中,雖然力求完美,但難免有一些不足之處,歡迎各界專家和讀者朋友們提出寶貴意見,聯(lián)系方式: huyaowen@1000phone.com。
千鋒教育高教產(chǎn)品研發(fā)部
2019年6月于北京
目錄
第1章Python網(wǎng)絡爬蟲入門
1.1所需技能與Python版本
1.1.1所需技術(shù)能力
1.1.2選擇Python的原因
1.1.3選擇Python 3.x的原因
1.2初識網(wǎng)絡爬蟲
1.2.1網(wǎng)絡爬蟲的概念
1.2.2網(wǎng)絡爬蟲的應用
1.2.3Robots協(xié)議
1.3搜索引擎核心
1.4快速爬取網(wǎng)頁示例
1.5本章小結(jié)
1.6習題
第2章爬蟲基礎知識
2.1Cookie的使用
2.1.1Cookie的概念
2.1.2使用Cookiejar處理Cookie
2.2正則表達式
2.2.1正則表達式的概念
2.2.2正則表達式詳解
2.3標記語言
2.4XPath
2.5JSON
2.6BeautifulSoup
2.6.1安裝BeautifulSoup
2.6.2BeautifulSoup的使用
2.7本章小結(jié)
2.8習題
第3章urllib與requests
3.1urllib庫
3.1.1urllib庫的概念
3.1.2urllib庫的使用
3.2設置HTTP請求方法
3.2.1GET請求實戰(zhàn)
3.2.2設置代理服務
3.3異常處理
3.3.1URLError異常處理
3.3.2HTTPError異常處理
3.4requests庫
3.4.1安裝requests庫
3.4.2發(fā)送請求
3.4.3響應接收
3.4.4會話對象
3.5本章小結(jié)
3.6習題
第4章網(wǎng)絡爬蟲實例
4.1圖片爬蟲實例
4.2鏈接爬蟲實例
4.3文字爬蟲實例
4.4微信文章爬蟲
4.5多線程爬蟲及實例
4.6本章小結(jié)
4.7習題
第5章數(shù)據(jù)處理
5.1存儲HTML正文內(nèi)容
5.1.1存儲為JSON格式
5.1.2存儲為CSV格式
5.2存儲媒體文件
5.3Email提醒
5.4pymysql模塊
5.5本章小結(jié)
5.6習題
第6章數(shù)據(jù)庫存儲
6.1SQLite
6.1.1SQLite介紹
6.1.2安裝SQLite
6.1.3Python與SQLite
6.1.4創(chuàng)建SQLite表
6.1.5添加SQLite表記錄
6.1.6查詢SQLite表記錄
6.1.7更新SQLite表記錄
6.1.8刪除SQLite表記錄
6.2MongoDB
6.2.1MongoDB簡介
6.2.2MongoDB適用場景
6.2.3MongoDB的安裝
6.2.4MongoDB基礎
6.2.5在Python中操作MongoDB
6.3Redis
6.3.1Redis簡介
6.3.2Redis適用場景
6.3.3Redis的安裝
6.3.4Redis數(shù)據(jù)類型與操作
6.3.5在Python中操作Redis
6.4本章小結(jié)
6.5習題
第7章抓取動態(tài)網(wǎng)頁內(nèi)容
7.1JavaScript簡介
7.1.1JS語言特性
7.1.2JS簡單示例
7.1.3JavaScript庫
7.1.4Ajax簡介
7.2爬取動態(tài)網(wǎng)頁的工具
7.2.1Selenium庫
7.2.2PhantomJS瀏覽器
7.2.3Firefox的headless模式
7.2.4Selenium的選擇器
7.2.5Selenium等待方式
7.2.6客戶端重定向
7.3爬取動態(tài)網(wǎng)頁實例
7.4本章小結(jié)
7.5習題
第8章瀏覽器偽裝與定向爬取
8.1瀏覽器偽裝介紹
8.1.1抓包工具Fiddler
8.1.2瀏覽器偽裝過程分析
8.1.3瀏覽器偽裝技術(shù)實戰(zhàn)
8.2定向爬蟲
8.2.1定向爬蟲分析
8.2.2定向爬蟲實戰(zhàn)
8.3本章小結(jié)
8.4習題
第9章初探Scrapy爬蟲框架
9.1了解爬蟲框架
9.1.1初識Scrapy框架
9.1.2初識Crawley框架
9.1.3初識Portia框架
9.1.4初識Newspaper框架
9.2Scrapy介紹
9.2.1安裝Scrapy
9.2.2Scrapy程序管理
9.2.3Scrapy項目的目錄結(jié)構(gòu)
9.3常用命令
9.3.1Scrapy全局命令
9.3.2Scrapy項目命令
9.3.3Scrapy的Item對象
9.4編寫Spider程序
9.4.1初識Spider
9.4.2Spider文件參數(shù)傳遞
9.5Spider反爬蟲機制
9.6本章小結(jié)
9.7習題
第10章深入Scrapy爬蟲框架
10.1Scrapy核心架構(gòu)
10.2Scrapy組件詳解
10.3Scrapy數(shù)據(jù)處理
10.3.1Scrapy數(shù)據(jù)輸出
10.3.2Scrapy數(shù)據(jù)存儲
10.4Scrapy自動化爬取
10.4.1創(chuàng)建項目并編寫items.py
10.4.2編寫pipelines.py
10.4.3修改settings.py
10.4.4編寫爬蟲文件
10.4.5執(zhí)行自動化爬蟲
10.5CrawlSpider
10.5.1創(chuàng)建CrawlSpider
10.5.2LinkExtractor
10.5.3CrawlSpider部分源代碼分析
10.5.4實例CrawlSpider
10.6本章小結(jié)
10.7習題
第11章Scrapy實戰(zhàn)項目
11.1文章類項目
11.1.1需求分析
11.1.2實現(xiàn)思路
11.1.3程序設計
11.1.4請求分析
11.1.5循環(huán)網(wǎng)址
11.1.6爬蟲運行
11.2圖片類項目
11.2.1需求分析
11.2.2實現(xiàn)思路
11.2.3程序設計
11.2.4項目實現(xiàn)
11.3登錄類項目
11.3.1需求分析
11.3.2實現(xiàn)思路
11.3.3程序設計
11.3.4項目實現(xiàn)
11.4本章小結(jié)
11.5習題
第12章分布式爬蟲
12.1簡單分布式爬蟲
12.1.1進程及進程間通信
12.1.2簡單分布式爬蟲結(jié)構(gòu)
12.1.3控制節(jié)點
12.1.4爬蟲節(jié)點
12.2Scrapy與分布式爬蟲
12.2.1Scrapy中集成Redis
12.2.2MongoDB集群
12.3Scrapy分布式爬蟲實戰(zhàn)
12.3.1創(chuàng)建爬蟲
12.3.2定義Item
12.3.3爬蟲模塊
12.3.4編寫Pipeline
12.3.5修改Settings
12.3.6運行項目
12.4去重優(yōu)化
12.5本章小結(jié)
12.6習題