日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

开源you-get项目爬虫,以及基于python+selenium的自动测试利器

發(fā)布時間:2025/3/21 python 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开源you-get项目爬虫,以及基于python+selenium的自动测试利器 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

寫在前面

爬蟲和自動測試,對于python來說是最合適不過也是最擅長的。

開源的項目也很多,例如you-get項目https://github.com/soimort/you-get。盜鏈和爬蟲神器。

python+selenium一般用來做自動化測試,也可以用來抽取 html的dom元素,從而作為前端的爬蟲使用

這些功能對于一些非常規(guī)的需求和自動化測試,可以說是量身打造的。

you-get

you-get支持的網(wǎng)站,都是直接破解其算法,直接算出playurl的方式,假如有分片,還可以用ffmepg來進行合并。

不僅僅能抓取目標的封面,標題描述等信息,還可以下載源視頻,非常的好用。

補充一個you-get沒有的c站的盜鏈php版本代碼。

   $client = new Client(['cookies' => true]);$playUrl = $request->get('playUrl');$htmlRes = $client->request('GET', $playUrl);$html = $htmlRes->getBody()->getContents();preg_match_all( '/(?mi-Us)<li>type=(\\d+)&vid=([^\\|]+)\\|<\/li>/', $html, $rxMatches) ;$type = $rxMatches[1][0];$vid = $rxMatches[2][0];$apiUrl = self::API_URL;$res = $client->request('GET', $apiUrl, ['query' => ['type' => $type,'vid' => $vid]]);$xmlData = $res->getBody()->getContents();$xmlData = simplexml_load_string($xmlData);$mp4Url = (string)$xmlData->durl->url;  

上述用到?Guzzle :功能很完善的 httpclient ,帶異步并發(fā)功能,別的腳本語言找不到這么好的 httpclient

c站的防盜鏈還是比較簡單,直接暴露了請求的playurl的參數(shù)在dom上。另外加上了cookie的驗證。

注意到'cookies' => true,可以把第一次請求的地址生成的cookie,保存在client,第二次請求的時候,會自動帶上cookie,從而破解了cookie的驗證限制。

?

python+selenium

自動化測試利器,高端測試或者自帶測試功能的程序員,應(yīng)該需要多了解和學習。而且非常的簡單,舉個簡單的例子:

from selenium.webdriver.support import expected_conditions as ECfrom selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWaiturl = 'http://www.bilibili.com/video/av9733485/'browser = webdriver.PhantomJS() browser.get(url) wait = WebDriverWait(browser, 20) element = wait.until(EC.presence_of_element_located((By.ID,'i_menu_login_btn'))) # b = browser.find_element_by_xpath("//div[@class='load-layer']/img").get_attribute('src')element.click()  

?

模仿打開瀏覽器訪問url,點擊和查找元素,都可以輕松實現(xiàn),減少重復(fù)機械化的人工成本。

轉(zhuǎn)載于:https://www.cnblogs.com/zenghansen/p/7551941.html

總結(jié)

以上是生活随笔為你收集整理的开源you-get项目爬虫,以及基于python+selenium的自动测试利器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。