开源you-get项目爬虫,以及基于python+selenium的自动测试利器
寫在前面
爬蟲和自動測試,對于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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多线程,线程同步,synchronize
- 下一篇: python-day49--前端 htm