


/**
* 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('//', '', $re);
$re = preg_replace('//', '', $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('/
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('/
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('//', '', $re);
$re = preg_replace('//', '', $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('/
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('/
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

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

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

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

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

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

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

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

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更新,包括那些在树中的库,


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

SublimeText3 Linux new version
SublimeText3 Linux latest version

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
Useful JavaScript development tools

SublimeText3 English version
Recommended: Win version, supports code prompts!
