开源you-get项目爬虫,以及基于python+selenium的自动测试利器
2021/4/25 22:26:00
本文主要是介绍开源you-get项目爬虫,以及基于python+selenium的自动测试利器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
写在前面
爬虫和自动测试,对于python来说是最合适不过也是最擅长的。
开源的项目也很多,例如you-get项目https://github.com/soimort/you-get。盗链和爬虫神器。
python+selenium一般用来做自动化测试,也可以用来抽取 html的dom元素,从而作为前端的爬虫使用
这些功能对于一些非常规的需求和自动化测试,可以说是量身打造的。
you-get
you-get支持的网站,都是直接破解其算法,直接算出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)type=(\\d+)&vid=([^\\|]+)\\|/', $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 ,带异步并发功能,别的脚本语言找不到这么好的 httpclient
c站的防盗链还是比较简单,直接暴露了请求的playurl的参数在dom上。另外加上了cookie的验证。
注意到'cookies' => true,可以把第一次请求的地址生成的cookie,保存在client,第二次请求的时候,会自动带上cookie,从而破解了cookie的验证限制。
python+selenium
自动化测试利器,高端测试或者自带测试功能的程序员,应该需要多了解和学习。而且非常的简单,举个简单的例子:
from selenium.webdriver.support import expected_conditions as EC from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait url = '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,点击和查找元素,都可以轻松实现,减少重复机械化的人工成本。
这篇关于开源you-get项目爬虫,以及基于python+selenium的自动测试利器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享
- 2024-12-19Python资料:新手入门的全面指南
- 2024-12-19Python股票自动化交易实战入门教程
- 2024-12-19Python股票自动化交易入门教程
- 2024-12-18Python量化入门教程:轻松掌握量化交易基础知识