高密住房和城乡建设厅网站,网站运作模式,wordpress3.7.1下载,软件二次开发什么意思提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 文章目录 一、爬取的源网站二、实现代码总结 一、爬取的源网站
http://www.lzizy9.com/ 在这里以电影片栏下的动作片为例来爬取。 可以看到视频有多页#xff0c;因此需要… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 文章目录 一、爬取的源网站二、实现代码总结 一、爬取的源网站
http://www.lzizy9.com/ 在这里以电影片栏下的动作片为例来爬取。 可以看到视频有多页因此需要多页爬取。
二、实现代码
import requests
from bs4 import BeautifulSoup
import osif __name____main__:# headers是解决requests请求反爬的方法之一相当于我们进去这个网页的服务器本身假装自己本身在爬取数据。# 对反爬虫网页设置headers的信息可以让我们的爬取操作模拟成浏览器取访问网站。# 当访问太频繁的时候容易被服务器禁止访问这时可以设置多个代理头通过随机选择某一个代理头来爬取数据这样可以避免使用同一个头频繁访问的封禁问题。headers {user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36}headers2 {user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36,}# 通过requests.get方法可以发送GET请求html_doc requests.get(fhttp://www.lzizy9.com/index.php/vod/type/id/6/page/1.html, headersheaders)# BeautifulSoup将复杂的HTML文件转化为一个Python对象使得用户可以更方便地解析、搜索和修改HTML内容。# html_doc.text获取网页的HTML内容soup BeautifulSoup(html_doc.text, html.parser)# 使用findALL提取网页中的信息其返回的是一个可迭代的对象具体的用法自行搜索# 我们要爬取所有的视频需要识别视频一共有多少页其返回结果为[/index.php/vod/type/id/6/page/61.html]根据参数我们得知一共有61页视频href_values [link[href] for link in soup.findAll(a, title尾页)]# 获取页数,并将字符串string转化为int整数end_page int(href_values[0][30:32])# 遍历每一页来获取视频的url链接for page in range(1, end_page1):# 此处获取网页信息与上面类似html_page requests.get(fhttp://www.lzizy9.com/index.php/vod/type/id/6/page/{page}.html, headersheaders)page_values BeautifulSoup(html_page.text, html.parser)# 找视频播放的链接其在标签为aclass为module-item-title的下面href_players [link[href] for link in page_values.findAll(a, attrs{class: module-item-title})]for href in href_players:# 寻找播放界面的规律发现其除了id号不同以外其他的都一样从上面获取的视频播放链接中提取id号id href[25:30]url fhttp://www.lzizy9.com/index.php/vod/play/id/{id}/sid/1/nid/1.htmlhtml_player requests.get(url, headersheaders)player_values BeautifulSoup(html_player.text, html.parser)href_video player_values.findAll(iframe) # 注意这里是没有获取到信息的因为HTML源码中的iframe标签是js加载的因此通过requests无法获取这里大家可以想别的办法获取视频的真实链接print(href_video)注意这个代码在最后一次捕获标签iframe时并没有捕捉到这是因为爬取的标签不在源HTML源代码中而是通过js加载进来的我目前也是第一次碰到这种情况不过大部分视频网站都是可以正常爬取的在这里只是一个爬取模板这个爬取可以用到很多网站。
总结
最后获取的是视频的下载地址url如果要爬取视频还需要写一个视频下载脚本可以看后面的教程。