① java網路爬蟲爬取web視頻資源,並下載怎麼做
/*這是個下載圖片的爬蟲,給你參考一下*/
import java.io.File;
import java.net.URL;
import java.net.URLConnection;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Scanner;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class DownMM {
public static void main(String[] args) throws Exception {
//out為輸出的路徑,注意要以\\結尾
String out = "D:\\JSP\\pic\\java\\";
try{
File f = new File(out);
if(! f.exists()) {
f.mkdirs();
}
}catch(Exception e){
System.out.println("no");
}
String url = "http://www.mzitu.com/share/comment-page-";
Pattern reg = Pattern.compile("<img src=\"(.*?)\"");
for(int j=0, i=1; i<=10; i++){
URL uu = new URL(url+i);
URLConnection conn = uu.openConnection();
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko");
Scanner sc = new Scanner(conn.getInputStream());
Matcher m = reg.matcher(sc.useDelimiter("\\A").next());
while(m.find()){
Files.(new URL(m.group(1)).openStream(), Paths.get(out + UUID.randomUUID() + ".jpg"));
System.out.println("已下載:"+j++);
}
}
}
}
② python爬蟲看電影會有什麼影響
閑著在家想看電影,但是猛地不知道要看啥電影,腦子想半天也想不出來一個好電影名字!乾脆直接在豆瓣電影上獲取最近熱門的電影,然後一個一個挨著看打發時間!
獲取豆瓣電影信息也是學爬蟲的一個入門例子,不知道為啥好多人學爬蟲都拿豆瓣電影來練手,一個應該是爬取比較簡單,另一個應該是這個平台反爬措施比較low,接下來讓我們來看看怎麼去實現獲取豆瓣電影前200個熱門電影信息!
1.請求數據
第一步先打開豆瓣電影網頁,分析請求看怎樣才能請求到數據。
刷新豆瓣電影網頁,從瀏覽器自帶的開發工具network中XHR可以看到各種請求,其中標黃的search_subject?type_movie這個請求就是請求電影信息,下面的type_tv就是請求電視劇信息的。從右邊標黃的request url中看到是請求的鏈接,但參數信息都被編碼,用urllib.parse.unquote()方法來進行解碼:
解碼後的請求連接如圖所示,猜想page_limt為每次請求到的數據量,page_start為從第幾頁開始請求,將這個鏈接在瀏覽器中打開來驗證一下猜想。
看到返回的是一個json字元串,裡麵包含50條電影信息,其中有名字,評分,鏈接等,將page_start = 0 變為1,就請求到下一個50條信息。根據鏈接的這個規律,可以對page_start 不斷賦值,從而實現多條信息的獲取!(公眾號 ly戲說編程)
第二步構造請求頭,即看看瀏覽器通過這個鏈接向伺服器發送了什麼請求參數才拿到這些json數據,打開瀏覽器開發者工具。
按照圖中1到4步可以看到這個請求的request headers,將請求頭裡面的信息全部拿出來,構造為爬蟲的請求頭。
坑:請求頭構造的時候Accept-Encoding要將br去掉。原因:Accept-Encoding用來聲明瀏覽器支持的編碼類型,一般有gzip,deflate,br 等等。但在python3的requests包中:
response.content 位元組方式的響應體,會自動為你解碼 gzip 和 deflate 壓縮 類型:bytes
reponse.text 字元串方式的響應體,會自動根據響應頭部的字元編碼進行解碼。類型:str
但偏偏不支持br的解碼,如果加上br可能造成你請求回來的是亂碼!所以要去掉br!
這樣通過模擬瀏覽器請求數據,就可以得到伺服器返回的json字元串,再解析json字元串得到每一個電影的詳情鏈接。
2.提取信息
在得到每一個電影的鏈接後,依次訪問每一個電影的鏈接,然後根據關鍵信息所在標簽用xpath進行提取。這里只對電影名字、年份、導演、類型、評分進行提取。
例如提取1917,在網頁右擊「1917」,然後選擇檢查,在Elements中1917所在位置右擊,選擇Copy,然後Copy XPath即可拿到1917的Xpath路徑,其它信息的提取操作步驟一樣。
但是不同電影網頁裡面相同類型的信息所在的XPath路徑可能不同,這就需要找到他們的相同處,提取相同的XPath路徑,從而進行大批量提取。
比如電影類型,用直接 xpath的方法就不好使,不同電影網頁裡面電影類型所處的標簽位置不同,用 xpath拷貝出來的路徑有差異,這就需要根據所在標簽的property屬性來獲取。主要代碼如下:
對每一網頁鏈接裡面的信息進行提取,這里每提取一個就停1s,為的是避免平台檢測到異常訪問,這樣就拿到每一個電影的信息,然後再將這信息保存到excel中,效果如圖所示
前幾名都是奧斯卡得獎電影有木有!感興趣的小夥伴快來試試!話不多說,挨著去看電影咯!去哪看?去公眾號 ly戲說編程 首頁vip影院看,裡面還有各種學習資源免費分享!
③ 怎樣用python獲取電影
實驗室這段時間要採集電影的信息,給出了一個很大的數據集,數據集包含了4000多個電影名,需要我寫一個爬蟲來爬取電影名對應的電影信息。
其實在實際運作中,根本就不需要爬蟲,只需要一點簡單的Python基礎就可以了。
前置需求:
Python3語法基礎
HTTP網路基礎
===================================
第一步,確定API的提供方。IMDb是最大的電影資料庫,與其相對的,有一個OMDb的網站提供了API供使用。這家網站的API非常友好,易於使用。
第二步,確定網址的格式。
第三步,了解基本的Requests庫的使用方法。
④ 第5課 實例二:爬取電影
1. 選擇一個網站: https://www.douban.com
2. 在進行爬取之前,我們先去看看它的robots協議。
協議網址: https://www.douban.com /robots.txt
3. 進入首頁 https://movie.douban.com/top250?start=0&filter= ,打開檢查工具,在Elements里查看這個網頁,是什麼結構。
點擊開發者工具左上角的小箭頭,選中「肖申克的救贖」,這樣就定位了電影名的所在位置,審查元素中顯示<span class="title">:<span>標簽內的文本,class屬性;推薦語和評分也是如此,<span class='inq'>,<span class='rating_num'>;序號:<em class>,<em>標簽內的文本,class屬性;推薦語<span class='inq'>;鏈接是<a>標簽里href的值。最後,它們最小共同父級標簽,是<li>。
4. 我們再換個電影驗證下找的規律是否正確。
5. check後,我們再看一共10頁,每頁的url有什麼相關呢?
第1頁: https://movie.douban.com/top250?start=0&filter=
第3頁: https://movie.douban.com/top250?start=50&filter=
第7頁: https://movie.douban.com/top250?start=150&filter=
發現只有start後面是有變大枝化,規律就是第N頁,start=(N-1)*25
6. 基於以上分析,我們有兩種寫爬蟲的思路。
思路一:先爬取最小共同父級標簽 <li>,然後針對每一個父談慎級標簽,提取裡面的序號/電影名/評分/推薦語/鏈接。
思路二:分別提取所有的序號/所有的電影名/所有的評分/所有的推薦語/所有的鏈接,然後再按順序一一對應起來。
import requests# 引用requests庫
from bs4 import BeautifulSoup# 引用BeautifulSoup庫
res_films=requests.get('https://movie.douban.com/')# 獲取數據
bs_films=BeautifulSoup(res_films.text,'html.parser')# 解析數據
fil_title=bs_films.find_all(class_='title')
fil_num=bs_films.find_all(class_="")
list_all=[]# 創建一個空列表,滾侍敏用於存儲信息
for x in range(len(fil_num)):
list_films=[fil_num[x].text[18:-14],fil_title[x].find('a')['href']]
list_all.append(list_films)
print(list_all)
⑤ 如何爬取別人網站的視頻資源放到自己的網站
通過視頻的URL,使用KeepVid能從YouTube獲取到視頻文件,而且提供多種格式的視頻文件形式下雹跡載。
目前支持的視頻罩談網站有(其中就有我朝的tudou):
youtube.com(源悶並youtu.be)
megavideo.com
dailymotion.com
twitvid.com
tudou.com
videoweed.es
stagevu.com
vbox7.com
zshare.net
v.9you.com
altervideo.net
clip.vn
divxstage.eu
Java applet做的,研究研究對你應該有幫助。
KeepVidDownloader.java
⑥ Python爬蟲實戰,Python多線程抓取5千多部最新電影下載鏈接
利用Python多線程爬了5000多部最新電影下載鏈接,廢話不多說~
讓我們愉快地開始吧~
Python版本: 3.6.4
相關模塊:
requests模塊;
re模塊;
csv模塊;
以及一些Python自帶的模塊。
安裝Python並添加到環境變數,pip安裝需要的相關模塊即可。
拿到鏈接之後,接下來就是繼續訪問這些鏈接,然後拿到電影的下載鏈接
但是這里還是有很多的小細節,例如我們需要拿到電影的總頁數,其次這么多的頁面,一個線程不知道要跑到什麼時候,所以我們首先先拿到總頁碼,然後用多線程來進行任務的分配
我們首先先拿到總頁碼,然後用多線程來進行任務的分配
總頁數其實我們用re正則來獲取
爬取的內容存取到csv,也可以寫個函數來存取
開啟4個進程來下載鏈接
您學廢了嗎?最後祝大家天天進步!!學習Python最重要的就是心態。我們在學習過程中必然會遇到很多難題,可能自己想破腦袋都無法解決。這都是正常的,千萬別急著否定自己,懷疑自己。如果大家在剛開始學習中遇到困難,想找一個python學習交流環境,可以加入我們,領取學習資料,一起討論,會節約很多時間,減少很多遇到的難題。
⑦ 如何用爬蟲爬取網頁上的數據
用爬蟲框架Scrapy, 三步
定義item類
開發spider類
開發pipeline
如果你想要蠢差更透的信息,你可以參考正檔禪《瘋舉塵狂python講義》
⑧ Python爬蟲實戰(1)requests爬取豆瓣電影TOP250
爬取時間:2020/11/25
系統環境:Windows 10
所用工具:Jupyter NotebookPython 3.0
涉及的庫:requestslxmlpandasmatplotlib
umpy
蛋肥想法: 先將電影名稱、原名、評分、評價人數、分類信息從網站上爬取下來。
蛋肥想法: print數據列表後發現電影原名、分類信息等存在不需要的字元,需預先處理;同時因為後續想做一個豆瓣電影TOP250的維度分布圖,而同一電影存在多個發行國家、類型(如「法國 美國 / 劇情 動作 犯罪」),為了簡(偷)便(懶),這里均取第一個作為記入的數據;最後將數據保存為xlsx。
蛋肥想法: 蛋肥想知道在豆瓣電影TOP250中年份、國家、類型的維度數據,為了練手,使用剛才保存成xlsx的數據,並分別畫成雷達圖、柱形圖、扇形圖。