学习视频链接:
https://www.bilibili.com/video/BV1gu411X7P6?p=18&vd_source=b425cf6a88c74ab02b3939ca66be1c0d
输入别的搜索词时,url栏query值变为输入内容,可发现通过改变query值查询不同内容
网站检测到发出请求的不是正常的浏览器,所以不给数据
看一下自己手动发送的这个请求中的user-agent是啥
放到代码里
否则默认的用户信息是:
可以发现,此时的参数并没有放在url上面
参数往往是在form data里面
要把post的url全盘复制过来,不管后面都跟着些什么符号
返回获取的json数据
下面对json数据进行解码:
用resp.text是返回的字符串,用resp.json返回的是字典,可以从里面一层一层地拿数据
发现数据是从这个url加载出来的
在headers中找到这个url的名字,?前是这个普通url的名字,?后是参数
参数:
可以与上面的一一对应
因为是get请求,所以参数都会拼到url里面
可以通过代码print(resp.request.url)来查看
提取出所需要的数据
- re模块
python内置模块 - find拿下所有匹配到的内容,返回列表、迭代器
- search只取到第一个匹配到的数据
- match从开头进行匹配,开头若没有则就是none
- compile预加载 使程序不用反复加载
- 实例
用括号把想要单独提取的内容括起来
给每一组匹配的内容分别起名,并提取
找到要提取的内容,开头是什么,结尾是什么,中间用正则表达式拼起来
发现要爬取的信息就在源代码中,所以通过requests.get().text拿到的页面源代码里面含有这些数据
- 拿到页面源代码
确定是get - 编写正则,提取页面数据
找到要取出的部分、两个电影内容的分界点
可以先从更小的部分入手,如果成功取出,就继续
【坑】.是除了换行符号之外任意的符号,但是可以看到源代码中很多换行符号。python中有可以让.匹配换行符的方法。
下面补充正则
注意
如法炮制……
去掉年份前的空白
- 保存数据
但是只提取了第一页的25条
每一页的参数不同
加一个循环,改变参数,可以提取出全部页数的内容



