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

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
