91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

大數據中如何爬取一個網站的信息

發布時間:2022-01-04 18:25:43 來源:億速云 閱讀:153 作者:柒染 欄目:大數據

大數據中如何爬取一個網站的信息,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

假如我們要爬這個網站:http://stuu.scnu.edu.cn/articles 的摘要和圖片。

首先引入庫:

from bs4 import BeautifulSoup
import requests

這兩個庫是爬蟲工具,文章底部有安裝方法。

然后定義url為我們需要爬蟲的網址,并且用requests.get()得到這個網址的內容存放在wb_data中。

url = "http://stuu.scnu.edu.cn/articles"
wb_data = requests.get(url)

對這些內容進行解析,這里要用到lxml,也是一種庫。


soup = BeautifulSoup(wb_data.text,'lxml')

我們先隨便找一欄:

大數據中如何爬取一個網站的信息

然后對網頁使用開發者工具提取我們想要的信息。還記得左上角這個鼠標+框框的圖案(圖中變藍了)嗎?點擊它,然后點擊標題。

大數據中如何爬取一個網站的信息

右邊會自動跳轉到它的代碼:

大數據中如何爬取一個網站的信息

選擇它的上一級,也就是上一個小三角形。如圖:

大數據中如何爬取一個網站的信息

右鍵-Copy-Copy selector,會得到下面這個:

#main-wrap-left > div.bloglist-container.clr > article:nth-child(5) > div.home-blog-entry-text.clr

把'#'號到'>'號的部分去掉,再把:nth-child(5)去掉,這個指的是第五個標簽,如果不去掉的話你只會得到第五個標簽的內容。

得到:div.bloglist-container.clr > article > div.home-blog-entry-text.clr

如果你對圖片、摘要,分別做同樣的事情,你會得到

圖片:div.bloglist-container.clr > article> a > div > img

摘要:div.bloglist-container.clr > article > div.home-blog-entry-text.clr > p

然后定義一個 :變量=soup.select("你剛剛得到的內容")

titles = soup.select("div.bloglist-container.clr > article > div.home-blog-entry-text.clr")
texts = soup.select("div.bloglist-container.clr > article > div.home-blog-entry-text.clr > p")
imgs = soup.select("div.bloglist-container.clr > article > a > div > img")

這里是把這些內容提取出來

再把他們放到字典里(title,text,img都是新變量):

for title,text,img in zip(titles,texts,imgs):
   data = {
       "標題":title.get_text(),
       "摘要":text.get_text(),
       "圖片":img.get('src')
   }

然后print(data),你會得到下面的信息,這樣我們就提取完畢了。(點擊查看大圖)

大數據中如何爬取一個網站的信息

完整代碼:


from bs4 import BeautifulSoup
import requests
url = "http://stuu.scnu.edu.cn/articles"
wb_data = requests.get(url)
soup = BeautifulSoup(wb_data.text,'lxml')

titles = soup.select("div.bloglist-container.clr > article > div.home-blog-entry-text.clr")
texts = soup.select("div.bloglist-container.clr > article > div.home-blog-entry-text.clr > p")
imgs = soup.select("div.bloglist-container.clr > article > a > div > img")

for title,text,img in zip(titles,texts,imgs):
   data = {
       "標題":title.get_text(),
       "摘要":text.get_text(),
       "圖片":img.get('src')
   }
   print(data)

如果你不止想得到僅僅這十個信息,那么你可以構造函數。

我們注意到第二頁的域名是:http://stuu.scnu.edu.cn/articles?paged=2

這是個重點,我們可以把2換成別的數字:

url = "http://stuu.scnu.edu.cn/articles?paged="

然后再把剛剛的內容變成一個函數:


def get_page(url):
   wb_data = requests.get(url)
   soup = BeautifulSoup(wb_data.text,'lxml')
   titles = soup.select("div.bloglist-container.clr > article > div.home-blog-entry-text.clr")
   texts = soup.select("div.bloglist-container.clr > article > div.home-blog-entry-text.clr > p")
   imgs = soup.select("div.bloglist-container.clr > article > a > div > img")

   for title,text,img in zip(titles,texts,imgs):
      data = {
         "標題":title.get_text(),
         "摘要":text.get_text(),
         "圖片":img.get('src')
      }
      print(data)

再添加一個能夠調整所需要的網頁數目,并調用get_page的函數:

def getmorepage(start,end):
   for i in range (start,end):
       get_page(url+str(i))

最后你想要多少頁的數據?

getmorepage(1,10)

最終結果(點擊查看大圖):

大數據中如何爬取一個網站的信息

你想要多少有多少,快速高效。

當然我這只是拋磚引玉(還有很多用法哦)

庫的安裝方法:


首先我們需要三個庫,一個是Beautifulsoup,一個是requests,還有一個是lxml。

如果你用的是PyCharm,可以從File->Default Settings->project interpreter內添加這兩個庫,如圖:

大數據中如何爬取一個網站的信息

點擊右邊那個+號,輸入你想要安裝的庫即可。

大數據中如何爬取一個網站的信息

Linux下安裝:

1.有PyCharm的直接按照上文操作即可

2.沒有的話請這樣操作:

sudo apt-get install Python-PackageName

packageName 就是你所需要安裝的庫的名稱。

windows下安裝:

1.首先確定你安裝了pip:

進入命令行(運行-CMD)輸入 pip --version

如果沒有報錯則證明你已經安裝,可以繼續下面的步驟。

2.如果你已經有了PyCharm,可以像上面PyCharm部分所說的那樣操作

如果沒有的話你有兩種選擇,一是壓縮包,二是pip中打命令,這里說第二種

在命令行里輸入:

pip3 install packageName

packageName 就是你所需要安裝的庫的名稱

如果遇到權限問題,請輸入:

sudo pip install packageName

安裝成功后會提示:

Successfully installed PackageName

如果你是python 2.  那么把pip3換成pip即可。

關于大數據中如何爬取一個網站的信息問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

苍梧县| 鞍山市| 荣成市| 绥芬河市| 来凤县| 台前县| 宜黄县| 天全县| 凯里市| 永兴县| 鸡西市| 日土县| 甘孜县| 上杭县| 东乡| 彭山县| 凉城县| 岑巩县| 泰州市| 永川市| 白山市| 万宁市| 彰武县| 宁阳县| 西峡县| 堆龙德庆县| 邢台县| 正镶白旗| 大余县| 宣汉县| 湘潭县| 华蓥市| 枝江市| 兰西县| 突泉县| 时尚| 麻栗坡县| 东莞市| 民县| 三原县| 东至县|