当前位置: 首页 > news >正文

爬虫的一些小技巧总结

一、在爬虫中,爬取的数据类型如下
1.document:返回的是一个HTML文档
2.png:无损的图片,jpg:压缩后的图片,wbep:有损压缩,比png差,比jpg好
3.avg+xml图像编码字符串
4.script:脚本文件,依据一定格式编写的可执行的文件
5.gif:图像交换格式
6.xhr:返回的是json数据类型,在没有刷新整个网页的情况下,更新部分网页,也称Ajax请求
7.包后缀是css意味着其是css样式
二、
1.几个快捷进入开发者工具的指令: 
打开开发者工具方法:F12(键盘)/fn+f12/ctrl+shift+i
2.列表转字符串方法:
str.join(列表)
如'\n'.join(selector.css('.noveContent p ::text').getall())
3.files = os.listdir(filename)  # 获取文件夹下所有的小视频
with zipfile.ZipFile(filename+title+'.mp4',mode='w') as z:
        z.write(content)
 4.print(response.text)后,在下方,按住ctrl+f键可以搜索如下图
d5f2ced75a854b12b8564d70ce546d1a.png
 点击:95f411d26699418e886e3e4c8dafd339.png
点击.*可以用正则表达式,如果用正则表达解析数据,可以在这里尝试,可以看见匹配的数量,然后再写入代码中。
5.列表中嵌套元祖,如何快速找出元祖中的元素。
如:a=[(1,'as'),(2,'ajsh'),(781,'ajhsasa')]
04c07180d44744c2851321ae0209ac72.png
bcedd1fe514e49479e0f1f9bd71140da.png
用第二张图的方法,可以直接取出元素
6.遇到参数很多,加冒号很麻烦怎么办,如下图:
 6656f636412e4384804666a55d2423f1.png
 首先选中代码,按ctrl+r出现下图:72f08f93e4f0487ea429ac78243182a8.png
点击·*进入正则,写入下图:2611a7dd0a3f4c328900561e1ad14d5d.png 
代码是: (.*?): (.*)
'$1': '$2',
点击replaceall
结果展现:ce9bfcd0941b41519cee4857aba9985b.png
二、视频类爬虫总结
爬取短视频类型的数据一般步骤:
1.点击media,刷新,播放一个视频,会刷新一个包,点击发现是播放视频的包,
2.复制这个包url中的关键字,在搜索框中进行搜索,看有哪些包有关键字。
3.搜索后找到有play_url的包
4.看这个包的url,观察有什么规律
5.以糖豆视频为例,发现这个包的url有参数vid
6.查找参数在哪个位置
7.在xhr 动态加载中找到包,发现其中json数据中有vid的数据。
8.访问xhr 中的包获取vid数据,利用获取到的vid数据拼凑含有play_url的包的链接,访问这个链接,获取play_url
9.多页爬取,观察xhr 包的链接有什么规律,发现参数为页数,即可多页爬取
注意:访问视频play_url时,爬取短视频类型,headers中把user-agent,cookie,refer全部加上
爬取长视频的一般步骤:长视频通常以m3u8的格式存在,找包的过程与上述一致,找的是ts格式的文件,但一般存在于xhr下面。小技巧,若通过参数找不到就直接搜索m3u8,说不定可以找到终极目标是找到一个包能返回下面的界面

不同的网站,这个包找的地方不同,A站中搜索就可以找到,腾讯视频则先要找到一个含m3u8的包,从里面提取出一个链接,再访问这个链接,得到上面的界面。 
下载时,要下载为ts的视频格式,多的一步是将文件合成。
可以将多个ts包合成一个下载代码:
  with open('斗罗大陆.mp4',mode='ab') as f:f.write(ts_content)
三、打包exe与制表库的使用
 1.制表模块使用prettytable
from prettytable import PrettyTable
tb = PrettyTable()      # 实例化一个对象
tb.field_names = ['序号','歌手','歌名'] # 设置字段名
tb.add_row([num,singer,song_name]) # 写入表格行

 

2. 将python文件打包成exe文件
首先,在项目中下载pyinstaller包pip install pyinstaller
然后在需要打包的python文件目录路径下输入cmd

在终端输入:pyinstaller -F 文件名.py
成功后会出现dit的文件夹,里面有exe的文件 

 

http://www.lryc.cn/news/309781.html

相关文章:

  • LeetCode---386周赛
  • React之数据绑定以及表单处理
  • Siamrpn++论文中文翻译(详细!)
  • 第一篇【传奇开心果系列】Python的自动化办公库技术点案例示例:深度解读Pandas库
  • 基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的停车位检测系统(Python+PySide6界面+训练代码)
  • 状态模式(State Pattern)
  • js之版本号排序
  • 考取ORACLE数据库OCP的必要性 Oracle数据库
  • WordPress通过宝塔面板的入门安装教程【保姆级】
  • Leetcoder Day25| 回溯part05:子集+排列
  • 【HTML】HTML基础5(特殊字符)
  • MacBook将iPad和iPhone备份到移动硬盘
  • 贪心 Leetcode 376 摆动序列
  • 蓝桥杯(3.1)
  • 像用Excel一样用Python:pandasGUI
  • C#面:Application , Cookie 和 Session 会话有什么不同
  • BUUCTF---数据包中的线索1
  • 【数仓】kafka软件安装及集群配置
  • 代码随想录 二叉树第三周
  • flask流式输出-SSE服务
  • 注解整理ing
  • Android 将图片网址url转化为bitmap
  • 鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:颜色渐变)
  • 腾讯云幻兽帕鲁游戏存档迁移教程,本地单人房迁移/四人世界怎么迁移存档?
  • C2_W2_Assignment_吴恩达_中英_Pytorch
  • C语言实现航班管理
  • 【Java面试题】SpringBoot与Spring的区别
  • 网络编程(IP、端口、协议、UDP、TCP)【详解】
  • Linux线程(二)----- 线程控制
  • Linux 内核irq_stack遍历