您好,登錄后才能下訂單哦!
如何用R語言和Python爬取知乎美圖,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
學習Python已有兩月有余,是時候檢驗下學習效果了,之前練習了不少R語言數據爬取,Python的爬蟲模塊還沒有來得及認真入門,亂拼亂湊就匆忙的開始了,今天就嘗試著使用R+Python來進行圖片爬取,完成一個簡單得小爬蟲。
目標網址在這里:
https://www.zhihu.com/question/35931586/answer/206258333
R語言版:
library(rvest)
library(downloader)
url<-"https://www.zhihu.com/question/35931586/answer/206258333"
link<- read_html(url)%>% html_nodes("div.RichContent-inner>span")%>%
html_nodes("img")%>%html_attr("data-original")%>%na.omit
#借助Chrome的審查元素功能,借助其路徑copy功能精準定位圖片所在節點
link<-link[seq(1,length(link),by=2)] #剔除無效網址
Name<-sub("https://pic\\d.zhimg.com/v2-","",link) #提取圖片名稱
dir.create("D:/R/Image/zhihu/zhihu0807") #建立存儲文件夾
setwd("D:/R/Image/zhihu/zhihu0807") #鎖定臨時目錄
for(i in 1:length(link)){
download(link[i],Name[i], mode = "wb")
} #下載過程:
-----------
Python:
---------
import requests
from bs4 import BeautifulSoup
import os
import re
import urllib
目標網址:
url="https://www.zhihu.com/question/35931586/answer/206258333"
header = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36'}
page=requests.get(url,headers=header) #讀取網址
soup=BeautifulSoup(page.text,'lxml') #解析地址
link_list=soup.select("div[class='RichContent-inner'] span img")[::2]
#使用CSS選擇器提取圖片 地址所在節點
os.makedirs("D:/Python/Image/zhihu0807")
os.chdir('D:/Python/Image/zhihu0807')
for link in link_list:
mylink=link.get('data-original') #使用get方法提取圖片地址:
name=re.findall(r"v2-.*?\.jpg",mylink)[0] #匹配圖片名稱
urllib.request.urlretrieve(mylink,name) #下載
完整代碼:
R語言版:
library(rvest)
library(downloader)
url<-"https://www.zhihu.com/question/35931586/answer/206258333"
link<- read_html(url)%>% html_nodes("div.RichContent-inner>span")%>%html_nodes("img")%>%html_attr("data-original")%>%na.omit
link<-link[seq(1,length(link),by=2)] #剔除無效網址
Name<-sub("https://pic\\d.zhimg.com/v2-","",link) #提取圖片名稱
dir.create("D:/R/Image/zhihu/zhihu0807") #建立存儲文件夾
setwd("D:/R/Image/zhihu/zhihu0807") #鎖定臨時目錄
for(i in 1:length(link)){
download(link[i],Name[i], mode = "wb")
} #下載過程:
Python版:
import requests
from bs4 import BeautifulSoup
import os
import re
import urllib
url="https://www.zhihu.com/question/35931586/answer/206258333"
header = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36'}
page=requests.get(url,headers=header)
soup=BeautifulSoup(page.text,'lxml')
link_list=soup.select("div[class='RichContent-inner'] span img")[::2]
os.makedirs("D:/Python/Image/zhihu0807")
os.chdir('D:/Python/Image/zhihu0807')
for link in link_list:
mylink=link.get('data-original')
name=re.findall(r"v2-.*?\.jpg",mylink)[0]
urllib.request.urlretrieve(mylink,name)
關于如何用R語言和Python爬取知乎美圖問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。