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