爬虫_电影ftp下载地址

站点:http://www.dy2018.com/

数据库:mysql 账号:root 密码:123456

建表语句:CREATE TABLE dy2008_url (id int(9) NOT NULL AUTO_INCREMENT, url varchar(2000) NOT NULL, status tinyint(2) NOT NULL, PRIMARY KEY(id));

代码:

<?php
	declare(ticks = 1);
	pcntl_signal(SIGQUIT, 'signal_handler');
	pcntl_signal(SIGTERM, 'signal_handler');

	$crawlers_pid = array();
	$finish_count = 0;

	//信号处理函数
	function signal_handler($signal)
	{
	    global $crawlers_pid;
	    if ($signal == SIGQUIT || $signal == SIGTERM)
	    {
	        foreach ($crawlers_pid as $pid) {
	            posix_kill($pid,SIGTERM);
	        }
	        echo "---------- crawl task exit ----------";
	        global $con;//mysql
	        exit();
	    }
	}

	//GET方式获取链接对应页面内容
	function get_page_content($url)
	{
		$content = file_get_contents($url);
		return $content;
	}

	//POST方式获取链接对应页面内容
	function get_page_content_by_post($url, $arr)
	{
		$arr = http_build_query($arr);
		$opts = array (
			'http' => array('method' => 'POST', 'header' => 'Content-type:application/x-www-form-urlencoded'.' Content-Length:'.strlen($data).'"', 'content' => $data)
		);
		$context = stream_context_create($opts);
		$content = file_get_contents($url,false,$context);
		return $content;
	}

	//dy2018抓取主流程
	function run_dy2018()
	{
		global $crawlers_pid;
		global $finish_count;
		$crawl_urls = array("http://www.dy2018.com/html/tv/hytv/",
		"http://www.dy2018.com/html/tv/hepai/",
		"http://www.dy2018.com/html/tv/gangtai/",
		"http://www.dy2018.com/html/tv/oumeitv/",
		"http://www.dy2018.com/html/tv/rihantv/",
		"http://www.dy2018.com/html/tv/tvzz/",
		"http://www.dy2018.com/0/",
		"http://www.dy2018.com/1/",
		"http://www.dy2018.com/2/",
		"http://www.dy2018.com/3/",
		"http://www.dy2018.com/4/",
		"http://www.dy2018.com/5/",
		"http://www.dy2018.com/6/",
		"http://www.dy2018.com/7/",
		"http://www.dy2018.com/8/",
		"http://www.dy2018.com/9/",
		"http://www.dy2018.com/10/",
		"http://www.dy2018.com/11/",
		"http://www.dy2018.com/12/",
		"http://www.dy2018.com/13/",
		"http://www.dy2018.com/14/",
		"http://www.dy2018.com/15/",
		"http://www.dy2018.com/16/",
		"http://www.dy2018.com/17/",
		"http://www.dy2018.com/18/",
		"http://www.dy2018.com/19/",
		"http://www.dy2018.com/20/");

		$i = 0;
		while($i < count($crawl_urls))
		{
			$pid = pcntl_fork();
			if($pid == -1) {
				echo "system error. check it now!";
				exit();
			} else if($pid > 0){
				$crawlers_pid[$i] = $pid;
			} else {
				$url = $crawl_urls[$i];
				$con = mysql_connect("localhost", "root", "123456");
				if(!$con) {
					die('Count not connect: '.mysql_error());
				}
				mysql_select_db("mysql", $con);
				crawl_process($url);
				$finish_count++;
			}
			$i++;
		}

		//pcntl_waitpid可能会导致信号监听失败
		while (true) {
			if($finish_count == count($crawlers_pid)) {
				echo "---------- crawl task finish ----------";
				mysql_close();
				exit();
			}
            sleep(1);
        }

	}

	//从入口链接到其下所有下载页链接抓取过程
	function crawl_process($url)
	{
		echo "start handle url:".$url;
		$page_idx = 1;
		$valid_tag = true;
		$info_url_pattern = '/\/i\/\d+.html/';
		$ftp_url_pattern = '/ftp:\/\/.*?.(swf|avi|flv|mpg|rm|mov|wav|asf|3gp|mkv|rmvb)/i';//^$两个符号不起作用
		while($valid_tag) {
			$page_url = get_page_index_url($url, $page_idx);
			printf("start crawl url:".$page_url."\n");
			$page_content = get_page_content($page_url);
			$valid_tag = is_valid_page($page_content);
			if($valid_tag) {
				$matches_urls = array();
				preg_match_all($info_url_pattern, $page_content, $matches_urls);
				$page_content = mb_convert_encoding($page_content, "UTF-8", "GBK");
				for($i=0; $i<count($matches_urls[0]); $i++) {
					$detail_url = 'http://www.dy2018.com'.$matches_urls[0][$i];
					$detail_page_content = get_page_content($detail_url);
					$detail_page_content = mb_convert_encoding($detail_page_content, "UTF-8", "GBK");
					preg_match_all($ftp_url_pattern, $detail_page_content, $ftp_urls);
					$ftp_links = array();
					for($j=0;$j<count($ftp_urls[0]); $j++) {

						$ftp_links[$j] = $ftp_urls[0][$j];
					}
					$ftp_links_unique = array_values(array_unique($ftp_links));

					foreach ($ftp_links_unique as $ftp_link) {
						mysql_query("insert into dy2018_url (url, status) values('$ftp_link','0')");
						// echo mysql_error();//打印mysql错误
					}
					sleep(1);
				}
			}
			$page_idx++;
		}
	}

	//获取页码对应的url链接
	function get_page_index_url($url, $idx)
	{
		$idx_url = $url;
		if($idx == 1) {
			$idx_url = $idx_url.'index.html';
		} else if($idx > 1){
			$idx_url = $idx_url.'index_'.$idx.'.html';
		}
		return $idx_url;
	}

	//根据页面内容判断链接是否有效
	function is_valid_page($content)
	{
		return $content?true:false;
	}
	run_dy2018();
	mysql_close();
?>

结果:

时间: 2024-11-13 06:14:50

爬虫_电影ftp下载地址的相关文章

ERWin 7.1 和7.2 的官方FTP下载地址

ERWin 7.1 下载地址: ftp://ftp.ca.com/CAproducts/erwin/ServicePacks/AFEDM71sp2-b1303.exe ERWin 7.2 下载地址: ftp://ftp.ca.com/CAproducts/erwin/ServicePacks/AFEDM72-b1644.exe ftp://ftp.ca.com 是CA的官方FTP,假设你须要下载其它的版本号或补丁,你能够用FTP工具下载. 以上地址绝对可用,本人亲自測过,用讯雷30kb/s,好好

夺命雷公狗---DEDECMS----27dedecms电影的下载地址的完成

我们现在要完成的是电影的下载地址这里: 我们的下载地址都是放在我们的dede_addonmovie(附加表)里面去才可以的,因为下载地址的个数是不能确定的,所以我们就将所有的下载地址存放到一个字段里面. 我们的下载地址存放的形式可以用  |   号来进行保存,如下所示: 3GP|人狗情未了01|176X144|http://www.showtp.com/01.3gp 3GP|人狗情未了02|176X144|http://www.showtp.com/02.3gp 3GP|人狗情未了03|176X

Python(x,y) 的 FTP 下载地址

因为 Python(x,y) 软件包托管在 Google code 上 https://code.google.com/p/pythonxy/,所以国内比较难下载. 这里推荐一个 FTP 下载地址:ftp://ftp.ntua.gr/pub/devel/pythonxy/ ,可以使用迅雷下载. 完. 原文地址:https://www.cnblogs.com/gaowengang/p/8401384.html

申冤人电影迅雷下载地址

导演: 安东尼·福奎阿 编剧: 理查德·温克 主演: 丹泽尔·华盛顿 / 马尔顿·索克斯 / 科洛·莫瑞兹 / 大卫·哈伯 / 海莉·贝内特 / 更多... 类型: 动作 / 惊悚 / 犯罪 制片国家/地区: 美国 语言: 英语 / 俄语 上映日期: 2014-09-26(美国) 片长: 131分钟 又名: 叛谍裁判(港) / 私刑教育(台) 剧情介绍:<伸冤人>原是一档于1985-1989年期间在美国CBS电视台播出的犯罪系列剧集.剧中,爱德华·伍德华德扮演的私家侦探是一位老练的前政府特工,

爬取搜索出来的电影的下载地址并保存到excel

一.背景 利用Requests模块获取页面,BeautifulSoup来获取需要的内容,最后利用xlsxwriter模块讲内容保存至excel,首先通过讲关键字收拾出来的页面获取到子页面的url,然后再次去抓取获取到子页面的信息保存到excel 二.代码 编写了两个模块,geturldytt和getexceldytt,最后在main内调用 geturldyttd代码如下: #!/bin/env python # -*- coding:utf-8 -*- from urllib import pa

爬虫_电影天堂 热映电影(xpath)

写了一天才写了不到100行.不过总归是按自己的思路完成了 1 import requests 2 from lxml import etree 3 import time 4 5 BASE = 'http://www.dytt8.net' 6 def get_one_page(url): 7 headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome

python爬虫--爬取某网站电影下载地址

前言:因为自己还是python世界的一名小学生,还有很多路要走,所以本文以目的为向导,达到目的即可,对于那些我自己都没弄懂的原理,不做去做过多解释,以免误人子弟,大家可以网上搜索. 友情提示:本代码用到的网址仅供交流学习使用,如有不妥,请联系删除. 背景:自己有台电脑要给老爸用,老爷子喜欢看一些大片,但是家里网络环境不好,就想批量下载一些存到电脑里.但是目前大部分的网站都是这样的, 需要一个个地点进去,才能看到下载地址 如果我要下载100部电影,那肯定手都要点断了,于是便想把这些地址给爬取出来,

linux各种版本下载地址

本文转载地址:http://52199999.blog.51cto.com/740826/290179 觉得好大家给顶顶,先谢谢了!呵呵 首先提供两个镜像站:http://mirrors.sohu.com/http://mirrors.163.com/Red Hat Enterprise Linux (rhel 3 4.6 5.1 5.2) CD.DVD下载地址http://rhel.ieesee.net/uingei/RHEL5 i386 FTP无限制全速下载!!!不限速,不限流,不限线程,建

简单爬虫获取电影资源

代码如下:# -*- coding: utf-8 -*-:__authoer__ = "wilsoon" import urllibimport reimport MySQLdb conn = MySQLdb.connect(host='192.168.112.128',port=3306,user='movie',passwd='movie',db='movie',charset='utf8',)cur = conn.cursor() def GetList(pn): html =