漫潮者,私有云,NAS,新媒体电商.软件开发,商乾
标题:
curl爬虫
[打印本页]
作者:
北极孤星的泪
时间:
2022-9-2 15:37
标题:
curl爬虫
函数部分
/**
* 发起网络请求
* @param string $url
* @param $data
* @param array $header
* @return bool|string
*/
function http_request(string $url, $data = [], array $header = []) {
$ret = '';
// 1、初始化
$ch = curl_init();
// 2、相关配置
# 设置请求的URL地址
curl_setopt($ch, CURLOPT_URL, $url);
# 设置一下执行成功后不直接返回到客户端
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
# 设置超时时间 单位是秒
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
# 不进行证书的检测
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
# 伪造一个请求的浏览器型号
curl_setopt($ch, CURLOPT_USERAGENT, 'msie');
// 表示有请求体,是POST的提交
if (!empty($data)) {
# 指明是一个POST请求
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
if (is_string($data)) {
# 设置头信息,告诉接受者我们发送的数据类型
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
}
}
// 3、执行
$ret = curl_exec($ch);
# 请求的错误码 为0表示请求正确,大于0则表求请求失败的
if (curl_errno($ch) > 0) {
echo curl_error($ch);
exit;
}
// 4、关闭请求资源
curl_close($ch);
return $ret;
}
复制代码
调用部分
//采集标题推荐使用curl需要手动开启
//__DIR__获取当前目录
include __DIR__.'/function.php';
//$url='https://kandian.ke.com/detail/MjY3MzE1NzI=.html?beikefrom=pc_kd_index';
$url="https://www.aurrel.com/thread-17326-1-1.html";
$html=http_request($url);
复制代码
作者:
北极孤星的泪
时间:
2022-9-6 14:16
调用部分也可以实例化一个DOMdocument对象,然后在查找路径的那种方式来找我们想要的内容
//实例化一个dom对象
//var_dump($html);
$dom=new DOMDocument();
//加载html忽略html不严谨的格式
libxml_use_internal_errors(1);
//dom下面执行加载loadhtml方法
$dom->loadHTML($html);
//将加载完的$dom对象当参数传递进去,转为xpath路径对象
$xpath=new DOMXPath($dom);
//查询路径值
$path='//*[@id="main-wrap"]/div/div[3]/div[1]/div/a';
复制代码
//生成对应的路径列表数据
$nodelist=$xpath->query($path);
//循环输出每一个对象调用他下面的属性取值
foreach ($nodelist as $v){
var_dump($v->nodeValue);
}
复制代码
关于如何寻找你的dom的xpath路径呢
(, 下载次数: 0)
上传
点击文件名下载附件
此方法简单浏览器能帮你完成不要去写正则表达式好累!!!!!
欢迎光临 漫潮者,私有云,NAS,新媒体电商.软件开发,商乾 (https://www.aurrel.com/)
Powered by Discuz! X3.4