python爬蟲 練習


爬蟲有什么分類

通用爬蟲
      通用爬蟲是搜索引擎(Baidu、Google、Yahoo等)“抓取系統”的重要組成部分。主要目的是將互聯網上的網頁下載到本地,形成一個互聯網內容的鏡像備份。  簡單來講就是盡可能的;把互聯網上的所有的網頁下載下來,放到本地服務器里形成備分,在對這些網頁做相關處理(提取關鍵字、去掉廣告),最后提供一個用戶檢索接口。 
聚焦爬蟲
    聚焦爬蟲是根據指定的需求抓取網絡上指定的數據。例如:獲取豆瓣上電影的名稱和影評,而不是獲取整張頁面中所有的數據值。

增量式爬蟲
    通過爬蟲程序監測某網站數據更新的情況,以便可以爬取到該網站更新出的新數據。

爬蟲的基本流程

1、發起請求
    使用http庫向目標站點發起請求,即發送一個Request
    Request包含:請求頭、請求體等

2、獲取響應內容
    如果服務器能正常響應,則會得到一個Response
    Response包含:html,json,圖片,視頻等

3、解析內容
    解析html數據:正則表達式,第三方解析庫如Beautifulsoup,pyquery等
    解析json數據:json模塊
    解析二進制數據:以b的方式寫入文件

4、保存數據
    數據庫
    文件

爬取網站需要注意什么

判斷數據源頭
	動態請求還是靜態請求(豆瓣 肯德基實列)
針對反爬策略做對應的處理

分析頁面間數據的關系 比如下層頁面的數據是由上層數據關聯(葯間總局實列)
注意字符編碼的問題
	

什么是數據解析 爬蟲一般用什么來處理

概念:就是將一組數據中的局部數據進行提取
作用:來實現聚焦爬蟲
正則
bs4
	bs4的解析原理
   實例化一個BeautifulSoup的對象,並且將即將被解析的頁面源碼數據加載到該對象中
   調用BeautifulSoup對象中的相關屬性和方法進行標簽定位和數據提取
   找標簽 層級選擇器 find 
xpath
	樹形對象

你在爬蟲的過程中遇到什么問題

數據亂碼的問題
	解決 調整編碼格式
cook驗證機制
	先動態獲取cook在去請求想要的數據
ip驗證問題
	使用代理 和代理池
動態 數據 安全驗證問題
	在頁面找
驗證碼問題
	利用在線打碼 解析
效率過低問題
	使用線程池 協程  回調函數
圖片懶加載
	屬性不對

scrapy框架是

  • 異步的爬蟲框架。
    • 高性能的數據解析,持久化存儲,全棧數據的爬取,中間件,分布式
  • 框架:就是一個集成好了各種功能且具有很強通用性的一個項目模板。

列舉您使用過的python網絡爬蟲所用到的網絡數據包

requests,urllib2,urllib

列舉您使用過的python網絡爬蟲所用到的解析數據包

xpath, beautifulsoup

域名和IP之間有什么關系,如何查看某個域名對應的所有IP?

國際互聯網(Internet)上有成千百萬台主機(host),為了區分這些主機,人們給每台主機都分配了一個專門的“地址”作為標識,稱為IP地址

由於IP地址全是些的數字,為了便於用戶記憶,Internet上引進了域名服務系統DNS(Domain Name System)。

當您鍵入某個域名的時候,這個信息首先到達提供此域名解析的服務器上,再將此域名解析為相應網站的IP地址。完成這一任務的過程就稱為域名解析。

robots協議是什么?

Robots協議(也稱為爬蟲協議、爬蟲規則、機器人協議等)也就是robots.txt,網站通過robots協議告訴搜索引擎哪些頁面可以抓取,哪些頁面不能抓取。

Robots協議是網站國際互聯網界通行的道德規范,其目的是保護網站數據和敏感信息、確保用戶個人信息和隱私不被侵犯。因其不是命令,故需要搜索引擎自覺遵守。

分布式去重原理

對於每一個url的請求,調度器都會根據請求得相關信息加密得到一個指紋信息,並且將指紋信息和set()集合中的指紋信息進行比對,如果set()集合中已經存在這個數據,就不在將這個Request放入隊列中。如果set()集合中沒有存在這個加密后的數據,就將這個Request對象放入隊列中,等待被調度。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM