search
HomeBackend DevelopmentPHP TutorialCapture the supplier program of 'Weiku Electronic Market'_PHP Tutorial

/**
* Capture the supplier main program of "Weiku Electronic Market"
* author Lee.
* Last modify $Date: 2012-2-3 9:30:21 $
* Note: This program is executed according to the encoding GB2312, because the "Weiku Electronic Market" website is encoded in GB2312, and the database must also be consistent
*/ 
class weiku { 
    private $key; // 型号  
    private $pageNum; // 页码  
 
    /**
* Entry program
​​*/ 
    public function go($key) { 
        $this->key = $key; 
        $this->pageNum = $this->getPageNum(); 
        $this->getInfo(); 
    } 
 
    /**
* Get the supplier url link array
* @return ArrayObject
​​*/ 
    private function getInfo() { 
        if ($this->pageNum==1) { # 处理只有一页的情况 
            $arr = $this->shopAddContact($this->shopUrlMatchReArr($this->getContent())); 
            $this->isAddSuccess($arr); 
        } elseif ($this->pageNum>1) { # 多页 
            for ($i=1; $ipageNum; $i++) { 
                $arr = $this->shopAddContact($this->shopUrlMatchReArr($this->getContent($i))); 
                $this->isAddSuccess($arr); 
            } 
        }    
    } 
     
    /**
* Print whether the addition was successful
* @param ArrayObject $arr
* @return string
​​*/ 
    private function isAddSuccess($arr) { 
        foreach ($arr as $k=>$v) { 
            if ($this->execAdd($this->getInfoByShopUrl($v))) { 
                echo 'Add Success!!'; 
            } else { 
                echo 'Add Faild!!'; 
            } 
        } 
    } 
 
    /**
* Execute adding to database
* @param ArrayObject $infoArr
* @return Number The number of affected rows
​​*/ 
    private function execAdd($infoArr) { 
        $mysqli = $this->getDb(); 
        if (!emptyempty($infoArr['company'])) { 
            if (!$this->isExists($mysqli, $infoArr)) { 
                $num = $mysqli->query("INSERT INTO weiku(company,person,phone,fax,mobile,qq,msn,email,address,shopUrl) VALUES ('{$infoArr['company']}','{$infoArr['person']}','{$infoArr['phone']}','{$infoArr['fax']}','{$infoArr['mobile']}','{$infoArr['qq']}','{$infoArr['msn']}','{$infoArr['email']}','{$infoArr['address']}','{$infoArr['shopUrl']}')"); 
                return $num; 
            } else { 
                return false; # 表示数据已经存在 
            } 
        } else { 
            return false; 
        } 
    } 
 
    /**
* Connect to database
​​*/ 
    private function getDb() { 
        $mysqli = new mysqli('localhost', 'root', '1715544', 'weiku'); 
        $mysqli->query('SET NAMES GB2312'); 
        return $mysqli; 
    } 
 
    /**
* Check if the company already exists
* @param Resource $mysqli
* @param ArrayObject $infoArr
* @return bool
​​*/ 
    private function isExists($mysqli, $infoArr) { 
        $mysqli->query("SELECT company FROM weiku WHERE company = '{$infoArr['company']}'"); 
        if ($mysqli->affected_rows) { 
            return true; 
        } else { 
            return false; 
        } 
    } 
 
    /**
* Grab information
* @param $url
* @return ArrayObject
​​*/ 
    private function getInfoByShopUrl($url) { 
        $re = $this->getUrlInfo($url); 
        preg_match_all('/公司名称:(.*)/Usi', $re, $companyArr); 
        preg_match_all('/联系人:(.*)/Usi', $re, $personArr); 
        preg_match_all('/电话:(.*)/Usi', $re, $phoneArr); 
        preg_match_all('/传真:(.*)/Usi', $re, $faxArr); 
        preg_match_all('/手机:(.*)/Usi', $re, $mobileArr); 
        preg_match_all('/QQ:(.*)/Usi', $re, $qqArr); 
        preg_match_all('/MSN:(.*)/Usi', $re, $msnArr); 
        preg_match_all('/E-Mail:(.*)/Usi', $re, $emailArr); 
        preg_match_all('/公司地址:(.*)/Usi', $re, $addressArr); 
        $infoArr = array( 
            'company'=>$this->stripATags($companyArr[1][0]), 
            'person'=>trim($personArr[1][0]), 
            'phone'=>trim($phoneArr[1][0]), 
            'fax'=>trim($faxArr[1][0]), 
            'mobile'=>trim($mobileArr[1][0]), 
            'qq'=>$this->formatQqMsn($qqArr[1][0]), 
            'msn'=>$this->formatQqMsn($msnArr[1][0], 'MSN'), 
            'email'=>$this->stripATags($emailArr[1][0]), 
            'address'=>trim($addressArr[1][0]), 
            'shopUrl'=>$url 
        ); 
        return $infoArr; 
    } 
 
    /**
* Get the supplier url array based on the page
* @param string $re
* @return ArrayObject
​​*/ 
    private function shopUrlMatchReArr($re) { 
        $re = preg_replace('/Capture the supplier program of 'Weiku Electronic Market'_PHP Tutorial/', '', $re); 
        $re = preg_replace('/Capture the supplier program of 'Weiku Electronic Market'_PHP Tutorial/', '', $re); 
        $re = preg_replace('/[A-Z]/', '', $re); 
        $re = preg_replace('/[0-9]/', '', $re); 
        $re = preg_replace('/.*/', '', $re); 
        $re = preg_replace('/.*/', '', $re); 
        $re = preg_replace('/营业执照/', '', $re); 
        $re = preg_replace('/该企业更多资质>>/', '', $re); 
        $re = preg_replace('/点此反馈/', '', $re); 
        $re = preg_replace('/首页/', '', $re); 
        $re = preg_replace('/IC/', '', $re); 
        $re = preg_replace('/简洁/', '', $re); 
        $re = preg_replace('/信用/', '', $re); 
        $re = preg_replace('/.*更多报价信息>>/', '', $re); 
        $re = preg_replace('/.*/', '', $re); 
        $re = preg_replace('/

.*/', '', $re); 
        preg_match_all('/.+/Usi', $re, $arr); 
        $arr = $this->formatUrlArr(array_unique($arr[1])); 
        return $arr; 
    } 
     
    /**
* * Format array
* @param Array $arr
* @return ArrayObject
​​*/ 
    private function formatUrlArr($arr) { 
        $newArr = array(); 
        foreach ($arr as $key=>$value) { 
            if ($this->isExistsHttp($value)) { 
                $newArr[$key] = $value; 
            } 
        } 
        return $newArr; 
    } 
     
    /**
* Format QQ
* @param string $str
* @return string
​​*/ 
    private function formatQqMsn($str, $e='QQ') { 
        if (emptyempty($str)) return ''; 
        preg_match_all('/alt="'.$e.':(.+)"/Usi', $str, $arr); 
        if (count($arr[1])==1) return $arr[1][0]; 
        $newStr = null; 
        foreach ($arr[1] as $value) { 
            $newStr .= $value . ' '; 
        } 
        return rtrim($newStr, ' '); 
    } 
 
    /**
* Added supplier store link contact.html
* @param array $arr
* @return string
​​*/ 
    private function shopAddContact($arr) { 
        foreach ($arr as $k=>$v) { 
            $arr[$k] = $v . '/contact.html'; 
        } 
        return $arr; 
    } 
 
    /**
* Remove the A tag from the URL
* @param string $site
* @return string
​​*/ 
    private function stripATags($site) { 
        $site = preg_replace('/(.+)/', '1', $site); 
        return $site; 
    } 
 
    /**
* Check if the url has http
* @param string $url
* @return bool
​​*/ 
    private function isExistsHttp($url) { 
        if (stristr($url, 'http://')) { 
            return true; 
        } else { 
            return false; 
        } 
    } 
     
    /**
* Get page content
* @param Number $page
* @return string
​​*/ 
    private function getContent($page=1) { 
        $re = file_get_contents($this->getUrl($this->key, $page)); 
        return $re; 
    } 
     
    /**
* Get page number
* @return Number
​​*/ 
    private function getPageNum() { 
        $i = 1; 
        while (true) { 
            $re = $this->getContent($i); 
            # 处理单页避免处理死循环 
            if (!strstr($re, '下一页')) { 
                break; 
                                                                                # Multiple pages, calculate the page number
If (stristr($re, 'next page')) break;
$i++;
                                                                                                                                               } 
         return $i;
}  

/**
* Get URL link
* @param string $str
* @param int $page page number
* @return string
​​*/
Private function getUrl($str, $page=1) {
Return "http://www.dzsc.com/ic/sell_search.html?keyword={$str}&ic_sel=supplygoods&Submit=%26%23160%3B&page={$page}"; }

/**
* Get page content
* @param string $url
* @return string
​​*/
Private function getUrlInfo($url) {
          $re = file_get_contents($url);
         return $re;
}  
}

/*
Program running idea: According to the IC search function of "Huaqiang Electronic Network", enter the model number to search, and then grab the supplier information

Database structure
CREATE TABLE `weiku` (
`id` mediumint(8) unsigned NOT NULL auto_increment COMMENT 'ID',
`company` varchar(300) default NULL COMMENT 'company name',
`person` varchar(200) default NULL COMMENT 'Contact',
`phone` varchar(300) default NULL COMMENT 'phone',
`fax` varchar(300) default NULL COMMENT 'Fax',
`mobile` varchar(300) default NULL COMMENT 'mobile phone',
`qq` varchar(200) default NULL COMMENT 'QQ',
`msn` varchar(200) default NULL COMMENT 'MSN',
`email` varchar(300) default NULL COMMENT 'email',
`address` varchar(500) default NULL COMMENT 'Company address',
`shopUrl` varchar(200) default NULL COMMENT 'Weiku.com store address',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
*/

$k = new weiku();
$arr = array_unique(array('MAX3232', 'AML8613', 'MT6225A', 'OM8373PS/N3/A', 'PT7313', 'MAX8212ESA', 'TL431', 'S3C2440', 'TMS320F2812PGFA', 'PCM1704' 'AN6717', 'CA3162E', 'CA3161E', 'LM393N', 'DS18B20', 'SHT10', 'AML8613', 'AN6717', 'LM393N', 'CA3161E', 'CA3162E', 'PCM1704', ' STK392-040', 'K1667', 'MAX232', 'STM32F103', 'LM358'));
foreach ($arr as $v) {
$k->go($v);
}
?>
/**
* Capture the supplier main program of "Weiku Electronic Market"
* author Lee.
* Last modify $Date: 2012-2-3 9:30:21 $
* Note: This program is executed according to the encoding GB2312, because the "Weiku Electronic Market" website is encoded in GB2312, and the database must also be consistent
*/
class weiku {
private $key; //Model
private $pageNum; // Page number

/** * Entry program

​*/
public function go($key) {
$this->key = $key;
$this->pageNum = $this->getPageNum();
$this->getInfo();
}

 /**
* Get supplier url link array
* @return ArrayObject
​*/
 private function getInfo() {
  if ($this->pageNum==1) { # 处理只有一页的情况
   $arr = $this->shopAddContact($this->shopUrlMatchReArr($this->getContent()));
   $this->isAddSuccess($arr);
  } elseif ($this->pageNum>1) { # 多页
   for ($i=1; $ipageNum; $i++) {
    $arr = $this->shopAddContact($this->shopUrlMatchReArr($this->getContent($i)));
    $this->isAddSuccess($arr);
   }
  } 
 }
 
 /**
* Print whether the addition was successful
* @param ArrayObject $arr
* @return string
​*/
 private function isAddSuccess($arr) {
  foreach ($arr as $k=>$v) {
   if ($this->execAdd($this->getInfoByShopUrl($v))) {
    echo 'Add Success!!';
   } else {
    echo 'Add Faild!!';
   }
  }
 }

 /**
* Execute adding to database
* @param ArrayObject $infoArr
* @return Number Number of affected rows
​*/
 private function execAdd($infoArr) {
  $mysqli = $this->getDb();
  if (!empty($infoArr['company'])) {
   if (!$this->isExists($mysqli, $infoArr)) {
    $num = $mysqli->query("INSERT INTO weiku(company,person,phone,fax,mobile,qq,msn,email,address,shopUrl) VALUES ('{$infoArr['company']}','{$infoArr['person']}','{$infoArr['phone']}','{$infoArr['fax']}','{$infoArr['mobile']}','{$infoArr['qq']}','{$infoArr['msn']}','{$infoArr['email']}','{$infoArr['address']}','{$infoArr['shopUrl']}')");
    return $num;
   } else {
    return false; # 表示数据已经存在
   }
  } else {
   return false;
  }
 }

 /**
* Connect to database
​*/
 private function getDb() {
  $mysqli = new mysqli('localhost', 'root', '1715544', 'weiku');
  $mysqli->query('SET NAMES GB2312');
  return $mysqli;
 }

 /**
* Check if the company already exists
* @param Resource $mysqli
* @param ArrayObject $infoArr
* @return bool
​*/
 private function isExists($mysqli, $infoArr) {
  $mysqli->query("SELECT company FROM weiku WHERE company = '{$infoArr['company']}'");
  if ($mysqli->affected_rows) {
   return true;
  } else {
   return false;
  }
 }

 /**
* Grab information
* @param $url
* @return ArrayObject
​*/
 private function getInfoByShopUrl($url) {
  $re = $this->getUrlInfo($url);
  preg_match_all('/公司名称:(.*)/Usi', $re, $companyArr);
  preg_match_all('/联系人:(.*)/Usi', $re, $personArr);
  preg_match_all('/电话:(.*)/Usi', $re, $phoneArr);
  preg_match_all('/传真:(.*)/Usi', $re, $faxArr);
  preg_match_all('/手机:(.*)/Usi', $re, $mobileArr);
  preg_match_all('/QQ:(.*)/Usi', $re, $qqArr);
  preg_match_all('/MSN:(.*)/Usi', $re, $msnArr);
  preg_match_all('/E-Mail:(.*)/Usi', $re, $emailArr);
  preg_match_all('/公司地址:(.*)/Usi', $re, $addressArr);
  $infoArr = array(
   'company'=>$this->stripATags($companyArr[1][0]),
   'person'=>trim($personArr[1][0]),
   'phone'=>trim($phoneArr[1][0]),
   'fax'=>trim($faxArr[1][0]),
   'mobile'=>trim($mobileArr[1][0]),
   'qq'=>$this->formatQqMsn($qqArr[1][0]),
   'msn'=>$this->formatQqMsn($msnArr[1][0], 'MSN'),
   'email'=>$this->stripATags($emailArr[1][0]),
   'address'=>trim($addressArr[1][0]),
   'shopUrl'=>$url
  );
  return $infoArr;
 }

 /**
* Get the supplier url array based on the page
* @param string $re
* @return ArrayObject
​*/
 private function shopUrlMatchReArr($re) {
  $re = preg_replace('/Capture the supplier program of 'Weiku Electronic Market'_PHP Tutorial/', '', $re);
  $re = preg_replace('/Capture the supplier program of 'Weiku Electronic Market'_PHP Tutorial/', '', $re);
  $re = preg_replace('/[A-Z]/', '', $re);
  $re = preg_replace('/[0-9]/', '', $re);
  $re = preg_replace('/.*/', '', $re);
  $re = preg_replace('/.*/', '', $re);
  $re = preg_replace('/营业执照/', '', $re);
  $re = preg_replace('/该企业更多资质>>/', '', $re);
  $re = preg_replace('/点此反馈/', '', $re);
  $re = preg_replace('/首页/', '', $re);
  $re = preg_replace('/IC/', '', $re);
  $re = preg_replace('/简洁/', '', $re);
  $re = preg_replace('/信用/', '', $re);
  $re = preg_replace('/.*更多报价信息>>/', '', $re);
  $re = preg_replace('/.*/', '', $re);
  $re = preg_replace('/

.*/', '', $re);
  preg_match_all('/.+/Usi', $re, $arr);
  $arr = $this->formatUrlArr(array_unique($arr[1]));
  return $arr;
 }
 
 /**
* Format array
* @param Array $arr
* @return ArrayObject
​*/
 private function formatUrlArr($arr) {
  $newArr = array();
  foreach ($arr as $key=>$value) {
   if ($this->isExistsHttp($value)) {
    $newArr[$key] = $value;
   }
  }
  return $newArr;
 }
 
 /**
* Format QQ
* @param string $str
* @return string
​*/
 private function formatQqMsn($str, $e='QQ') {
  if (empty($str)) return '';
  preg_match_all('/alt="'.$e.':(.+)"/Usi', $str, $arr);
  if (count($arr[1])==1) return $arr[1][0];
  $newStr = null;
  foreach ($arr[1] as $value) {
   $newStr .= $value . ' ';
  }
  return rtrim($newStr, ' ');
 }

 /**
*Add supplier store link contact.html
* @param array $arr
* @return string
​*/
 private function shopAddContact($arr) {
  foreach ($arr as $k=>$v) {
   $arr[$k] = $v . '/contact.html';
  }
  return $arr;
 }

 /**
* Remove the A tag from the URL
* @param string $site
* @return string
​*/
 private function stripATags($site) {
  $site = preg_replace('/(.+)/', '1', $site);
  return $site;
 }

/**
* Check if the url has http
* @param string $url
* @return bool
​*/
private function isExistsHttp($url) {
if (stristr($url, 'http://')) {
Return true;
} else {
Return false;
}
}

/**
* Get page content
* @param Number $page
* @return string
​*/
private function getContent($page=1) {
$re = file_get_contents($this->getUrl($this->key, $page));
return $re;
}

/**
* Get page number
* @return Number
​*/
private function getPageNum() {
$i = 1;
while (true) {
$re = $this->getContent($i);
# Processing single pages to avoid endless loops
if (!strstr($re, 'next page')) {
Break;
} else {
# Multiple pages, calculate the page number
If (stristr($re, 'next page')) break;
$i++;
}
}
Return $i;
}

/**
* Get URL link
* @param string $str
* @param int $page page number
* @return string
​*/
private function getUrl($str, $page=1) {
retrn "http://www.dzsc.com/ic/sell_search.html?keyword={$str}&ic_sel=supplygoods&Submit=%26%23160%3B&page={$page}"u;


}

/**
* Get page content
* @param string $url
* @return string
​*/
private function getUrlInfo($url) {
$re = file_get_contents($url);
return $re;
}
}

/*
Program running idea: According to the IC search function of "Huaqiang Electronic Network", enter the model number to search, and then grab the supplier information

Database structure
CREATE TABLE `weiku` (
`id` mediumint(8) unsigned NOT NULL auto_increment COMMENT 'ID',
`company` varchar(300) default NULL COMMENT 'company name',
`person` varchar(200) default NULL COMMENT 'Contact',
`phone` varchar(300) default NULL COMMENT 'phone',
`fax` varchar(300) default NULL COMMENT 'Fax',
`mobile` varchar(300) default NULL COMMENT 'mobile phone',
`qq` varchar(200) default NULL COMMENT 'QQ',
`msn` varchar(200) default NULL COMMENT 'MSN',
`email` varchar(300) default NULL COMMENT 'email',
`address` varchar(500) default NULL COMMENT 'Company address',
`shopUrl` varchar(200) default NULL COMMENT 'Weiku.com store address',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
*/

$k = new weiku();
$arr = array_unique(array('MAX3232', 'AML8613', 'MT6225A', 'OM8373PS/N3/A', 'PT7313', 'MAX8212ESA', 'TL431', 'S3C2440', 'TMS320F2812PGFA', 'PCM1704' 'AN6717', 'CA3162E', 'CA3161E', 'LM393N', 'DS18B20', 'SHT10', 'AML8613', 'AN6717', 'LM393N', 'CA3161E', 'CA3162E', 'PCM1704', ' STK392-040', 'K1667', 'MAX232', 'STM32F103', 'LM358'));
foreach ($arr as $v) {
$k->go($v);
}
?>


Excerpted from Lee.’s column

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/478400.htmlTechArticle?php /** * Grab the main program of suppliers in the Weiku electronic market* author Lee. * Last modify $ Date: 2012-2-3 9:30:21 $ * Note: This program is executed according to the code GB2312, because the Weiku electronic market website...
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
ace-guard client exe是什么程序ace-guard client exe是什么程序Sep 22, 2021 pm 06:07 PM

ace-guard client exe是腾讯代理游戏的反作弊程序,是ewido的守护进程,保护“ewido.exe”进程不被恶意软件关闭;使用它可以检测游戏用户是否有开挂行为,可自动进行封号处理。

microsoft visual c++可以卸载吗?microsoft visual c++可以卸载吗?Sep 14, 2022 am 11:36 AM

“microsoft visual c++”是可以卸载的,但是不建议卸载;“microsoft visua”这些都是一些微软的组件,里面包括一些“C++”标准库、原始数据库等相关信息,很多软件尤其是游戏中需要“microsoft visual c++”中的环境组件,如果缺少了“C++”标准库的支持,可能会造成软件的无法运行。

Scrapy案例解析:如何抓取LinkedIn上公司信息Scrapy案例解析:如何抓取LinkedIn上公司信息Jun 23, 2023 am 10:04 AM

Scrapy是一个基于Python的爬虫框架,可以快速而方便地获取互联网上的相关信息。在本篇文章中,我们将通过一个Scrapy案例来详细解析如何抓取LinkedIn上的公司信息。确定目标URL首先,我们需要明确我们的目标是LinkedIn上的公司信息。因此,我们需要找到LinkedIn公司信息页面的URL。打开LinkedIn网站,在搜索框中输入公司名称,在

卸载程序的文件名是什么卸载程序的文件名是什么Oct 21, 2022 pm 02:05 PM

卸载程序的文件名是“uninstall.exe”或“uninst.exe”,是用以协助使用者将软件自电脑中删除的一种电脑软件。使用方法:1、在文件资源管理器中挖掘并导航到应用程序EXE文件所在的文件路径;2、通过文件路径打开应用程序的安装目录,找到“uninstall.exe”文件;3、双击卸载文件“uninstall.exe”即可开始程序删除过程。

如何在设备管理器中查找供应商 ID?如何在设备管理器中查找供应商 ID?Apr 25, 2023 pm 08:19 PM

如果设备管理器中有一个未知条目并且您无法识别它,您会怎么做?除非您安装驱动程序,否则未知设备将无法工作,并且在识别设备之前您无法找到驱动程序。这就是设备管理器中的供应商ID出现的地方。设备管理器是一个应用程序,它列出了连接到计算机的所有设备、组件和外围设备,包括内部和外部。它还允许您选择执行一系列功能,并查找有关设备的信息。因此,让我们了解供应商ID是什么以及如何在设备管理器中找到它。什么是供应商ID?供应商ID是分配给设备制造商的标识符,用于帮助追踪设备制造商的各种原因,包括查找相关驱动程

wmiprvse.exe是什么程序wmiprvse.exe是什么程序Sep 02, 2022 am 10:59 AM

“wmiprvse.exe”是windows管理规范程序;该程序是windows操作系统的一个组件,用于通过“WinMgmt.exe”程序处理WMI操作,能够实现为用户提供管理信息和企业环境中的控制功能。

曝 iPhone 18 要用三星传感器曝 iPhone 18 要用三星传感器Jul 25, 2024 pm 10:42 PM

据悉,苹果即将推出的iPhone18系列预计将采用三星制造的影像传感器,这一变化有望打破索尼在苹果供应链中的垄断地位。1.根据报道,三星已成立专门团队以满足苹果的要求。三星将从2026年起为苹果提供4800万像素、1/2.6英寸的超广角影像传感器,这表明苹果不再完全依赖索尼传感器供应。苹果拥有近千家供应商,供应链管理策略灵活多变。苹果通常为每种零部件配置至少两个供应商,促进供应商竞争并获得更优惠的价格。引入三星作为传感器供应商,可优化苹果成本结构,并可能影响索尼的市场地位。三星影像传感器技术实力

PyTorch 2.0正式版发布!一行代码提速2倍,100%向后兼容PyTorch 2.0正式版发布!一行代码提速2倍,100%向后兼容Apr 13, 2023 am 08:34 AM

PyTorch 2.0正式版终于来了!去年12月,PyTorch基金会在PyTorch Conference 2022上发布了PyTorch 2.0的第一个预览版本。跟先前1.0版本相比,2.0有了颠覆式的变化。在PyTorch 2.0中,最大的改进是torch.compile。新的编译器比以前PyTorch 1.0中默认的「eager mode」所提供的即时生成代码的速度快得多,让PyTorch性能进一步提升。除了2.0之外,还发布了一系列PyTorch域库的beta更新,包括那些在树中的库,

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!