1、爬蟲概念
? 爬蟲:寫一段代碼,去指定的url(網(wǎng)站)去獲取指定的數(shù)據(jù)
? 互聯(lián)網(wǎng):或聯(lián)網(wǎng)中,給你一個起始url,比如:www.baidu.com,互聯(lián)網(wǎng)中的節(jié)點(diǎn)都是一個al鏈接,或者稱之為url
1.1通用爬蟲:百度,搜狗,google,雅虎,bing
1.1.1他們的工作
:
1.爬取所有信息
2.主動提交url
3.百度主動和域名服務(wù)商合作
?1.1.2如果不想讓百度抓取?
robots.txt 放到django根目錄
?1.1.3網(wǎng)站排名
:
魏則西事件 pagerank
1.2聚焦爬蟲
?1.2.1通用爬蟲缺點(diǎn):
1.爬取數(shù)據(jù)后無用數(shù)據(jù)太多,而且重復(fù)率高
2.無法根據(jù)需求去爬取
1.2.2都有哪些語言可以實(shí)現(xiàn)爬蟲?
php:
自稱是世界上最優(yōu)美的語言,多線程多進(jìn)程支持的非常差。
c/c++:
也可以實(shí)現(xiàn)爬蟲。學(xué)習(xí)成本太高可以實(shí)現(xiàn),但是只是能力的體現(xiàn)
java:
他是python最強(qiáng)的競爭者。代碼結(jié)構(gòu)臃腫,重構(gòu)成本高
python:
號稱全世界最優(yōu)雅的語言,語法簡潔,簡單易學(xué)。而且python提供了一個非常強(qiáng)大的scrapy框架
內(nèi)容介紹:
1.python語法
2.如何抓取數(shù)據(jù),涉及的庫
urllib.request urllib.parse requests
3.解析數(shù)據(jù)
re(正則),BS4 ,xpath
4.采集動態(tài)數(shù)據(jù)
DOM操作,網(wǎng)頁內(nèi)容動態(tài)生成的
selenium + phantomjs
5.進(jìn)程,線程,多線程爬蟲
6.scrapy框架
7.scrapy-redis分布式部署
8.爬蟲-反爬蟲-反返爬蟲
UA,cookie,動態(tài)加載,懶加載,驗(yàn)證碼,代理,防盜鏈
2、http協(xié)議
2.1 網(wǎng)站的工作原理
2.1.1url的完整格式:www.xxx.com:統(tǒng)一資源定位符
比如:www.goudan.com/index.html?name=‘狗蛋’&age=‘18’#lala
主機(jī)ip地址:端口/參數(shù)/錨點(diǎn)
錨點(diǎn):以前用的多,多用于頁面內(nèi)容非常多的頁面,用于指定頁面內(nèi)的位置
2.2.http和https的區(qū)別:
https://www.cnblogs.com/wqhwe/p/5407468.html
HTTPS和HTTP的區(qū)別主要如下:
1、https協(xié)議需要到ca申請證書,一般免費(fèi)證書較少,因而需要一定費(fèi)用。
2、http是超文本傳輸協(xié)議,信息是明文傳輸,https則是具有安全性的ssl加密傳輸協(xié)議。
3、http和https使用的是完全不同的連接方式,用的端口也不一樣,前者是80,后者是443。
4、http的連接很簡單,是無狀態(tài)的;HTTPS協(xié)議是由SSL+HTTP協(xié)議構(gòu)建的可進(jìn)行加密傳輸、身份認(rèn)證的網(wǎng)絡(luò)協(xié)議,比http協(xié)議安全。
客戶端在使用HTTPS方式與Web服務(wù)器通信時有以下幾個步驟,如圖所示。
(1)客戶使用https的URL訪問Web服務(wù)器,要求與Web服務(wù)器建立SSL連接。
(2)Web服務(wù)器收到客戶端請求后,會將網(wǎng)站的證書信息(證書中包含公鑰)傳送一份給客戶端。(3)客戶端的瀏覽器與Web服務(wù)器開始協(xié)商SSL連接的安全等級,也就是信息加密的等級。
(4)客戶端的瀏覽器根據(jù)雙方同意的安全等級,建立會話密鑰,然后利用網(wǎng)站的公鑰將會話密鑰加密,并傳送給網(wǎng)站。
(5)Web服務(wù)器利用自己的私鑰解密出會話密鑰
(6)Web服務(wù)器利用會話密鑰加密與客戶端之間的通信。
2.3http協(xié)議:
圖解http協(xié)議:https://www.cnblogs.com/10158wsj/p/6762848.html
HTTP請求:
HTTP請求中的常用消息頭
accept:瀏覽器通過這個頭告訴服務(wù)器,它所支持的數(shù)據(jù)類型
Accept-Charset: 瀏覽器通過這個頭告訴服務(wù)器,它支持哪種字符集
Accept-Encoding:瀏覽器通過這個頭告訴服務(wù)器,支持的壓縮格式
Accept-Language:瀏覽器通過這個頭告訴服務(wù)器,它的語言環(huán)境
Host:瀏覽器通過這個頭告訴服務(wù)器,想訪問哪臺主機(jī)
If-Modified-Since: 瀏覽器通過這個頭告訴服務(wù)器,緩存數(shù)據(jù)的時間
Referer:瀏覽器通過這個頭告訴服務(wù)器,客戶機(jī)是哪個頁面來的 防盜鏈
Connection:瀏覽器通過這個頭告訴服務(wù)器,請求完后是斷開鏈接還是何持鏈接
3.抓包工具
3.1fiddler
3.2谷歌自帶
3.3Charles
https://blog.csdn.net/d1240673769/article/details/74298429
4.urllib
4.1urllib.request
4.2urllib.parse
下篇主要介紹urllib這個類!!!
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

