⑴ 如何用python爬取網站數據
這里簡單介紹一下吧,以抓取網站靜態、動態2種數據為慧返拍例,實驗環境win10+python3.6+pycharm5.0,主要內容如下:
抓取網站靜態數據(數據在網頁源碼中):以糗事網路網站數據為例
1.這里假設我們抓取的數據如下,主要包括用戶昵稱、內容、好笑數和評論數這4個欄位,如下:
對應的網頁源碼如下,包含我們所需要的數據:
2.對應網頁結構,主要代碼如下,很簡單,主要用到requests+BeautifulSoup,其中requests用於請求頁面,BeautifulSoup用於解析頁面:
程序運行截圖如下,已經成功爬取到數據:
抓取網站動態數據(數據不在網頁源碼中,json等文件中):以人人貸網站數據為例
1.這里假設我們爬取的是債券數據,主要包括年利率世型、借款標題、期限、金額和進度這5個欄位信息,截圖如下:
打開網頁源碼中,可以發現數據不在網頁源碼中,按F12抓包分析時,才發現在一個json文件中,如下:
2.獲取到json文件的url後,我們就可以爬取對應數據了,這里使用的包與上面類似,因為是json文件,所以還用了json這個包(解析json),主要內容如下:
程序運行截圖如下,前羨已經成功抓取到數據:
至此,這里就介紹完了這2種數據的抓取,包括靜態數據和動態數據。總的來說,這2個示例不難,都是入門級別的爬蟲,網頁結構也比較簡單,最重要的還是要會進行抓包分析,對頁面進行分析提取,後期熟悉後,可以藉助scrapy這個框架進行數據的爬取,可以更方便一些,效率更高,當然,如果爬取的頁面比較復雜,像驗證碼、加密等,這時候就需要認真分析了,網上也有一些教程可供參考,感興趣的可以搜一下,希望以上分享的內容能對你有所幫助吧。
⑵ python怎樣爬取網站目錄結構
抓取每一頁的所有a標簽,採集所有href屬性,分離域名,把此網站域名專下的地址標記為採集入庫條屬件,然後計算第一次採集到的地址的hash,如果hash重復,則不入庫,否則入庫再迭代二次採集,直到所有href的hash都復為結束條件,程序則認為資料庫中已採集到此域下的所有地址,即可以開始抓站
⑶ 如何爬取網站上的某一信息
兩類網站可以用不同的方法去爬取
一、開放API的網站
一個網站如果開放了API,那麼就可以直接GET到它的json數據。有三種方法可以判斷一個網站是否開放了API。
1、在站內尋找API入口;
2、用搜索引擎搜索「某網站API」;
3、抓包。有的網站雖然用到了ajax,但是通過抓包還是能夠獲取XHR里的json數據的(可用抓包工具抓包,也可以通過瀏覽器按F12抓包:F12-Network-F5刷新)。
二、不開放API的網站
1、如果網站是靜態頁面,那麼可以用requests庫發送請求,再通過HTML解析庫(lxml、parsel等)來解析響應的text;解析庫強烈推薦parsel,不僅語法和css選擇器類似,而且速度也挺快,Scrapy用的就是它。
2、如果網站是動態頁面,可以先用selenium來渲染JS,再用HTML解析庫來解析driver的page_source。