每一个搞爬虫的人,都应该知道的神器!
大家好~作为一个爬虫小菜鸟,一般爬的网站都是比较简单。
也就是先F12接口抓包,再requests爬取。
往往还需要复制header、Cookie等。
太麻烦了,对于我们来说,有没有更简单的办法呢?
确实可以提高一定效率,比如:curl请求命令转Python请求代码!
curl转Python
curl是利用URL语法在命令行方式下工作的开源文件传输工具,支持文件的上传和下载,是综合传输工具。[1]
以猫眼电影榜单为例,先在Google游览器中,右键复制网络抓到的网络请求为cURL(bash)。
然后打开任意一个可以转换的网站,比如这个https://curl.trillworks.com/。
将刚刚复制的内容,填写该网站左侧,右侧同时生成了对应的 python requests
代码。
剩下的大家就可以自行选择合适的选择器了,比如正则表达式、BeautifulSoup、Xpath、CSS选择器等等。
是不是方便很多了。
但我们还是不希望来回切换网页,最好都能在Python代码中直接使用。
Python代码中使用
还是希望在Python中直接运行,所以今天给大家介绍的Python库,叫做filestools,由小小明开发,直接使用如下命令,安装后使用。
pip install filestools --index-url=http://mirrors.aliyun.com/pypi/simple -U
这个库一共集成了4个功能,4个库都已经全部迁移到了filestools库中,因此安装这一个库,就可以使用所有的4个功能了,你只需要在使用对应功能,分别导入对应的模块即可。
之前已经给大家安利过图片加水印的功能了,具体见:2行Python给图片加水印,太强了!
4个功能之一的curl2py命令,则是可以将curl命令转换为Python代码[2]。
帮助文档如下:
E:\>curl2py -h
usage: curl2py [-h] [-f FILE] [-o OUT] [-t] [-c]将curl网络请求命令转换成Python的requests库请求代码,-f/-t/-o三个参数均没有指定时,结果将保存到剪切板中optional arguments:-h, --help show this help message and exit-f FILE, --file FILE 被转换的curl命令文件,-o和-t参数均没有指定将保存到对应的同名py脚本中,不指定则从直接对剪切板操作-o OUT, --out OUT 生成py脚本的保存位置-t, --tmp py脚本是否保存到当前目录的tmp.py中-c, --copy 始终copy结果到剪切板
不过今天我们主要讲,要在Python中直接调用。
只要将刚刚右键复制为cURL(bash)
得到的内容,插入下方代码中。
from curl2py.curlParseTool import curlCmdGenPyScriptcurl_cmd = '''右键复制为cURL(bash)'''
output = curlCmdGenPyScript(curl_cmd)
print(output)
运行后就可以得到,与前文中转换网站一样的效果了。
将生成的代码复制到代码框里,配合选择器,运行。
response.encoding='utf-8'#正则匹配
re_name = re.findall('data-val="{movieId:.*?}">(.*?)</a>',response.text)
re_star = re.findall('<p class="star">\n (.*?)\n </p>',response.text,re.S)
re_releasetime = re.findall('<p class="releasetime">(.*?)</p>',response.text)
re_integer = re.findall('<i class="integer">(.*?)</i>',response.text)
re_fraction = re.findall('<i class="fraction">(.*?)</i>',response.text)score =[]
for n in range(len(re_integer)):score.append(re_integer[n]+re_fraction[n])for i in range(len(re_name)):content = re_name[i]+' '+score[i]+' '+re_star[i]+' '+re_releasetime[i]print(content)
成功爬取到猫眼榜单数据。
如果你使用 Jupyter Notebook 的话,可以使用插件snippets
来自定义代码块,将curl2py
这段代码设为模板,实现代码复用。其他编辑器也有类似功能,可以自行搜索。这大大节省了我们的工具效率!
注:如果你还对反向转换感兴趣的话,即requests代码转为CURL命令,可以了解一下curlify模块。
点个关注吧~
推荐阅读
每一个搞爬虫的人,都应该知道的神器!相关推荐
- 不是每一个缺钱的人都能贷款!
有没有那么一刻,你会觉得无助和绝望,感受到了人性的冷淡,仿佛整个人生都进入了寒冬? 答:借钱! 绝大多数人都知道,借钱二字,只要说出口,无论多亲近的人都会产生隔阂. 因为,人情是最贵的借贷成本. 而银 ...
- 每一个学习编程的人都应该有梦想
每一个学习编程的人都应该有一个梦想,一个改变世界的梦想: 每一个学习编程的人都应该有一个梦想,一个改变自己的梦想: 每一个学习编程的人都应该有一个梦想,一个快乐生活的梦想: 每一个学习编程的人都应该有 ...
- 人生不止一个答案,每个人都有自己的战场
现在的社会很浮躁,每个人都想成功,想挣快钱. 晚上看了一篇文章<人生不止一个答案,每个人都有自己的战场>,文章讲述了我们熟知的著名导演李安.音乐艺人李健,以及著名演员张嘉译,三人无不意外都 ...
- 搞水产的人都笑了,智慧水产养殖水质监测解决方案
一.行业背景 随着近年来经济的飞速发展,水产行业也在飞速崛起.但随着养殖密度不断加大,养殖环境在逐渐日益恶化,养殖成本还在持续上涨,传统的养殖模式已无法满足现代水产养殖业的发展要求,设施智能化养殖势在 ...
- 混合多云架构_使用混合多云每个人都应避免的3个陷阱(第3部分)
混合多云架构 每天都在肆意宣传云,但每个人都应避免三个陷阱. 从云,混合云到混合多云,您都被告知这是确保业务数字化未来的一种方式. 您必须做出的这些选择不会排除提高客户体验和敏捷交付这些应用程序的日常 ...
- 使用混合多云每个人都应避免的3个陷阱(第3部分)
每天都在肆意宣传云,但每个人都应避免三个陷阱. 从云,混合云到混合多云,您被告知这是确保业务数字化未来的一种方式. 您必须做出的这些选择不会排除提高客户体验和敏捷交付这些应用程序的日常工作. 让我们开 ...
- 自媒体人必备神器,200w+自媒体人都在用
工欲善其事必先利其器,对于自媒体人来说尤其如此,因为工具可以帮助我们很大程度地提高效率.因此今天就给大家介绍一下,那些自媒体人都在用的神器: 01 爆文搜集神器--易撰 易撰真的是一个相当好用的爆文采 ...
- 【转帖】每一个不懂爱的人都会遇到一个懂爱的人,然后经历一场撕心裂肺的爱情。不懂爱的人慢慢懂了。懂爱的人,却不敢再爱了。。。
每一个不懂爱的人都会遇到一个懂爱的人,然后经历一场撕心裂肺的爱情.不懂爱的人慢慢懂了.懂爱的人,却不敢再爱了... 每一个不懂爱的人都会遇到一个懂爱的人 这个懂爱的人会让那个不懂爱的改变 让他长大 让 ...
- python爬虫都能干什么用_5 行代码就能写一个 Python 爬虫
欢迎关注我的公众号:第2大脑,或者博客:高级农民工,阅读体验更好. 摘要:5 行代码就能写一个 Python 爬虫. 如果你是比较早关注我的话,会发现我此前的大部分文章都是在写 Python 爬虫,前 ...
最新文章
- Codeforces 447C - DZY Loves Sequences
- 如何防止google colab 掉线
- c++驱动键鼠源码,C++ 驱动打印机源码
- Linux进程间通讯之消息队列
- 3.3-3.9 周记
- VMware下配置固定ip,于本机进行通信。
- mvc怎么单独引用css文件,关于asp.net mvc:如何在剃刀视图中引用.css文件?
- jmeter 压测 RabbitMQ_单机
- canvas 将图形设置为button_你会将Word设置为默认格式吗?应用之后,效率加倍
- 矩池云上安装chumpy失败
- vuex从安装到使用
- 学计算机的博士男朋友,有个计算机博士男朋友的日常?
- linux系统 安装hp驱动怎么安装,Ubuntu 8.04 下安装HP LaserJet 1020 打印机驱动程序步骤...
- Profinet协议生成GSD文件教程
- 基于51单片机的指纹考勤系统密码锁门禁原理图PCB程序设计
- Spring Cloud项目是如何读取bootstrap.properties文件的?
- echarts 雷达图
- 小米mix2s android8,小米MIX2S谷歌Pixel安卓刷机包(完整系统固件升级包安卓8.1)
- CAD是什么,C4D又是什么?
- python 爬虫爬取统计局北京统计数据
热门文章
- EMC浪涌防护器件之压敏电阻详解
- 国产电脑操作系统有哪些比较好用
- 单片机8位抢答器实训机电报告_6位抢答器单片机实训报告要点分析.doc
- php nginx 负载均衡
- PhotoSwipe之参数options(3)
- Unity3D游戏开发之仿仙剑奇侠传角色死亡怎么来实现
- PDF编辑器怎么通过华为手机免费使用?
- 英语propretie地产propretie单词
- 常用的DC转DC 降压电路 MP1584EN 5V 3.3V 1.8V
- 网页崩溃原因软件测试,Web网站为什么会崩溃 - Web自动化测试 - 松勤网 - 松勤软件测试-软件测试在线教育领跑者-国内最专业的软件测试学习平台...