真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

大數(shù)據(jù)中如何爬取一個(gè)網(wǎng)站的信息

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

成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)江夏,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

假如我們要爬這個(gè)網(wǎng)站:http://stuu.scnu.edu.cn/articles 的摘要和圖片。

首先引入庫:

from bs4 import BeautifulSoup
import requests

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

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

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

對這些內(nèi)容進(jìn)行解析,這里要用到lxml,也是一種庫。

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

我們先隨便找一欄:

大數(shù)據(jù)中如何爬取一個(gè)網(wǎng)站的信息

然后對網(wǎng)頁使用開發(fā)者工具提取我們想要的信息。還記得左上角這個(gè)鼠標(biāo)+框框的圖案(圖中變藍(lán)了)嗎?點(diǎn)擊它,然后點(diǎn)擊標(biāo)題。

大數(shù)據(jù)中如何爬取一個(gè)網(wǎng)站的信息

右邊會自動跳轉(zhuǎn)到它的代碼:

大數(shù)據(jù)中如何爬取一個(gè)網(wǎng)站的信息

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

大數(shù)據(jù)中如何爬取一個(gè)網(wǎng)站的信息

右鍵-Copy-Copy selector,會得到下面這個(gè):

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

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

得到: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

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

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")

這里是把這些內(nèi)容提取出來

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

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

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

大數(shù)據(jù)中如何爬取一個(gè)網(wǎng)站的信息

完整代碼:

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 = {
       "標(biāo)題":title.get_text(),
       "摘要":text.get_text(),
       "圖片":img.get('src')
   }
   print(data)

如果你不止想得到僅僅這十個(gè)信息,那么你可以構(gòu)造函數(shù)。

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

這是個(gè)重點(diǎn),我們可以把2換成別的數(shù)字:

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

然后再把剛剛的內(nèi)容變成一個(gè)函數(shù):

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 = {
         "標(biāo)題":title.get_text(),
         "摘要":text.get_text(),
         "圖片":img.get('src')
      }
      print(data)

再添加一個(gè)能夠調(diào)整所需要的網(wǎng)頁數(shù)目,并調(diào)用get_page的函數(shù):

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

最后你想要多少頁的數(shù)據(jù)?

getmorepage(1,10)

最終結(jié)果(點(diǎn)擊查看大圖):

大數(shù)據(jù)中如何爬取一個(gè)網(wǎng)站的信息

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

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

庫的安裝方法:


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

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

大數(shù)據(jù)中如何爬取一個(gè)網(wǎng)站的信息

點(diǎn)擊右邊那個(gè)+號,輸入你想要安裝的庫即可。

大數(shù)據(jù)中如何爬取一個(gè)網(wǎng)站的信息

Linux下安裝:

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

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

sudo apt-get install Python-PackageName

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

windows下安裝:

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

進(jìn)入命令行(運(yùn)行-CMD)輸入 pip --version

如果沒有報(bào)錯(cuò)則證明你已經(jīng)安裝,可以繼續(xù)下面的步驟。

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

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

在命令行里輸入:

pip3 install packageName

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

如果遇到權(quán)限問題,請輸入:

sudo pip install packageName

安裝成功后會提示:

Successfully installed PackageName

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

關(guān)于大數(shù)據(jù)中如何爬取一個(gè)網(wǎng)站的信息問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。


當(dāng)前名稱:大數(shù)據(jù)中如何爬取一個(gè)網(wǎng)站的信息
URL分享:http://weahome.cn/article/jghejg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部