桂林seo_南京网站推广_深圳seo优化_宁波微信开发

怎样设计网站

安徽seo、自助建网站、永久使用、不限域名、模板建站

上海seo公司哪家好?

桂林seo_南京网站推广_深圳seo优化_宁波微信开发

import jsonclass MainSpider(CrawlSpider):name = "main"# allowed_domains = ["www.xxx.com"]start_urls = ["https://www.pearvideo.com/category_1"]# 定义一个防盗链id列表json_ids = [""]# 多个规则解析器,用于自动发送请求rules = (# 向网站中所有的视频详情页发送请求Rule(LinkExtractor(allow=r"video_\d+"), callback="parse_item", follow=True),)def parse_item(self, response):# 将所有的请求数据的视频id存入本爬虫类的json_ids中# 用于在下载器中间件修改请求头,在请求头中添加防盗链self.json_ids.append(response.url.split('_')[-1])# print(response.url.split('_')[-1])# print(response)# 获得视频的idlist_video_ids = response.xpath('//div[@id="poster"]/@data-cid').extract()for vid in list_video_ids:random_num = "{:.16f}".format(random.uniform(0, 1))mrd = random_num[2:18]# 因为视频链接存在于异步加载的链接中,所有组装请求urlvideo_json_url = f'https://www.pearvideo.com/videoStatus.jsp?contId={vid}&mrd={mrd}'# 对json的URL地址发送请求,传入回调函数,# 传入请求参数视频id, 用于拼接完整的视频下载链接yield scrapy.Request(url=video_json_url, callback=self.parse_video_url, meta={'vid': vid})def parse_video_url(self, response):print(response)# 将响应数据转为字典格式dic_data = response.json()# 取出字典中的 假视频URL, 并拼接出真实的视频地址v_url = dic_data['videoInfo']['videos']['srcUrl']n_id = v_url.split('/')[-1].split('-')[0]# 拼接完整视频下载地址full_url = v_url.replace(n_id, 'cont-' + response.meta['vid'])# 获得视频的名称video_name = full_url.split('/')[-1].split('-')[2] + 'ad_hd.mp4'print(full_url)print(video_name)# 对视频地址发送请求,传入回调函数,传入请求传参用于文件的命名yield scrapy.Request(url=full_url, callback=self.video_content, meta={'video_name': video_name})# item = LivideocrawlingItem()# item['video_url'] = full_url# item['video_name'] = video_name# yield itemdef video_content(self, response):# 打开一个文件并使用传过了的文件名,模式为二进制写入with open(f"./video/{response.meta['video_name']}", 'wb') as f:# 将视频二进制数据写入文件中f.write(response.body) 台州seo大连网页设计公司合肥设计网站郑州建设网站app制作软件公司威海网站设计公司百度提交入口保定网络营销网站推广专家河南建网站心海建站湖南长沙seo免费cms做网站好的公司网站开发如何建网站东莞seo优化推广东营seo网站技术都江堰seo重庆网站外包凡科建站官网狂人站群系统兰州网站优化百度收录提交入口网站seo李守洪排名大师成都建设网站广州网站排名昆明做网站网站搭建如何建立手机网站

猜你喜欢