浅析php如何实现爬取数据原理
官方网站站点:简单、 灵活、强大的PHP采集工具,让采集更简单一点。
简介
QueryList使用jQuery选择器来做采集,让你告别复杂的正则表达式;QueryList具有jQuery一样的DOM操作能力、Http网络操作能力、乱码解决能力、内容过滤能力以及可扩展能力;可以轻松实现诸如:模拟登陆、伪造浏览器、HTTP代理等意复杂的网络请求;拥有丰富的插件,支持多线程采集以及使用PhantomJS采集JavaScript动态渲染的页面。
安装
通过Composer安装:
composer require jaeger/querylist
使用教程:
直接上代码:
<?php include './vendor/autoload.php'; // 使用composer安装后引入目录 use QL\QueryList; // 使用插件 $html = file_get_contents('https://www.biqudu.com/14_14778/'); // 手动获取页面 $data = QueryList::html($html); // 得到页面内容 $data = QueryList::setHtml('https://www.biqudu.com/14_14778/'); // 等同于上面的html() $data->rules([ // 采集所有a标签的href属性 'link' => ['a','href'], // 采集所有a标签的文本内容 'text' => ['a','text'] ]); // 此处$data = 上面已经获取到网页内容之后的对象 // 设置采集规则 替代了传统正则 $data->query(); // 此处$data = 上面已经获取到网页内容之后的对象 // query 执行操作 $data->getData(); // 此处$data = 上面已经获取到网页内容之后的对象 // 得到数据结果 $data->all(); // 此处$data = 上面已经获取到网页内容之后的对象 // 将数据转换成二维数组 print_r($data->all()); // 打印结果
上面的基本使用方法就是这样了 这样我们已经可以抓取到一定的数据了
相关推荐
-
php记录搜索引擎爬行记录的实现代码
下面是完整代码: //记录搜索引擎爬行记录 $searchbot = get_naps_bot(); if ($searchbot) { $tlc_thispage = addslashes($_SERVER['HTTP_USER_AGENT']); $url = $_SERVER['HTTP_REFERER']; $file = WEB_PATH.'robotslogs.txt'; $date = date('Y-m-d H:i:s'); $data = fopen($file,'a'); f
-
PHP爬虫之百万级别知乎用户数据爬取与分析
这次抓取了110万的用户数据,数据分析结果如下: 开发前的准备 安装Linux系统(Ubuntu14.04),在VMWare虚拟机下安装一个Ubuntu: 安装PHP5.6或以上版本: 安装MySQL5.5或以上版本: 安装curl.pcntl扩展. 使用PHP的curl扩展抓取页面数据 PHP的curl扩展是PHP支持的允许你与各种服务器使用各种类型的协议进行连接和通信的库. 本程序是抓取知乎的用户数据,要能访问用户个人页面,需要用户登录后的才能访问.当我们在浏览器的页面中点击一个用户头像链接
-
php实现爬取和分析知乎用户数据
背景说明:小拽利用php的curl写的爬虫,实验性的爬取了知乎5w用户的基本信息:同时,针对爬取的数据,进行了简单的分析呈现. php的spider代码和用户dashboard的展现代码,整理后上传github,在个人博客和公众号更新代码库,程序仅供娱乐和学习交流:如果有侵犯知乎相关权益,请尽快联系本人删除. 无图无真相 移动端分析数据截图 pc端分析数据截图 整个爬取,分析,展现过程大概分如下几步,小拽将分别介绍 curl爬取知乎网页数据 正则分析知乎网页数据 数据数据入库和程序部署 数据分析
-
PHP 爬取网页的主要方法
主要流程就是获取整个网页,然后正则匹配(关键的). PHP抓取页面的主要方法,有几种方法是网上前辈的经验,现在还没有用到的,先存下来以后试试. 1.file()函数 2.file_get_contents()函数 3.fopen()->fread()->fclose()模式 4.curl方式 (本人主要用这个) 5.fsockopen()函数 socket模式 6.插件(如:http://sourceforge.net/projects/snoopy/) 7.file()函数 <?php
-
php实现简单爬虫的开发
有时候因为工作.自身的需求,我们都会去浏览不同网站去获取我们需要的数据,于是爬虫应运而生,下面是我在开发一个简单爬虫的经过与遇到的问题. 开发一个爬虫,首先你要知道你的这个爬虫是要用来做什么的.我是要用来去不同网站找特定关键字的文章,并获取它的链接,以便我快速阅读. 按照个人习惯,我首先要写一个界面,理清下思路. 1.去不同网站.那么我们需要一个url输入框. 2.找特定关键字的文章.那么我们需要一个文章标题输入框. 3.获取文章链接.那么我们需要一个搜索结果的显示容器. <di
-
PHP实现简单爬虫的方法
本文实例讲述了PHP实现简单爬虫的方法.分享给大家供大家参考.具体如下: <?php /** * 爬虫程序 -- 原型 * * 从给定的url获取html内容 * * @param string $url * @return string */ function _getUrlContent($url) { $handle = fopen($url, "r"); if ($handle) { $content = stream_get_contents($handle, 1024
-
php与python实现的线程池多线程爬虫功能示例
本文实例讲述了php与python实现的线程池多线程爬虫功能.分享给大家供大家参考,具体如下: 多线程爬虫可以用于抓取内容了这个可以提升性能了,这里我们来看php与python 线程池多线程爬虫的例子,代码如下: php例子 <?php class Connect extends Worker //worker模式 { public function __construct() { } public function getConnection() { if (!self::$ch) { sel
-
php爬取天猫和淘宝商品数据
一.思路 最近做了一个网站用到了从网址爬取天猫和淘宝的商品信息,首先看了下手机端的网页发现用的react,不太了解没法搞,所以就考虑从PC入口爬取数据,但是当爬取URL获取数据时并没有获取价格,库存等的信息,仔细研究了下发现是异步请求了另一个接口,但是接口要使用refer才能获取数据,于是就通过以下方式写了一个简单的爬虫,用于爬取商品预览图和商品的第一个分类的价格.库存等. 二.实现 代码如下: function crawlUrl($url){ import('PhpQuery.Curl');
-
浅析php如何实现爬取数据原理
官方网站站点:简单. 灵活.强大的PHP采集工具,让采集更简单一点. 简介 QueryList使用jQuery选择器来做采集,让你告别复杂的正则表达式:QueryList具有jQuery一样的DOM操作能力.Http网络操作能力.乱码解决能力.内容过滤能力以及可扩展能力:可以轻松实现诸如:模拟登陆.伪造浏览器.HTTP代理等意复杂的网络请求:拥有丰富的插件,支持多线程采集以及使用PhantomJS采集JavaScript动态渲染的页面. 安装 通过Composer安装: composer req
-
Python爬取数据保存为Json格式的代码示例
python爬取数据保存为Json格式 代码如下: #encoding:'utf-8' import urllib.request from bs4 import BeautifulSoup import os import time import codecs import json #找到网址 def getDatas(): # 伪装 header={'User-Agent':"Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.1
-
Python爬取数据并写入MySQL数据库的实例
首先我们来爬取 http://html-color-codes.info/color-names/ 的一些数据. 按 F12 或 ctrl+u 审查元素,结果如下: 结构很清晰简单,我们就是要爬 tr 标签里面的 style 和 tr 下几个并列的 td 标签,下面是爬取的代码: #!/usr/bin/env python # coding=utf-8 import requests from bs4 import BeautifulSoup import MySQLdb print('连接到m
-
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
本文实例讲述了Python3实现的爬虫爬取数据并存入mysql数据库操作.分享给大家供大家参考,具体如下: 爬一个电脑客户端的订单.罗总推荐,抓包工具用的是HttpAnalyzerStdV7,与chrome自带的F12类似.客户端有接单大厅,罗列所有订单的简要信息.当单子被接了,就不存在了.我要做的是新出订单就爬取记录到我的数据库zyc里. 设置每10s爬一次. 抓包工具页面如图: 首先是爬虫,先找到数据存储的页面,再用正则爬出. # -*- coding:utf-8 -*- import re
-
python3爬取数据至mysql的方法
本文实例为大家分享了python3爬取数据至mysql的具体代码,供大家参考,具体内容如下 直接贴代码 #!/usr/local/bin/python3.5 # -*- coding:UTF-8 -*- from urllib.request import urlopen from bs4 import BeautifulSoup import re import datetime import random import pymysql connect = pymysql.connect(ho
-
Python大数据之从网页上爬取数据的方法详解
本文实例讲述了Python大数据之从网页上爬取数据的方法.分享给大家供大家参考,具体如下: myspider.py : #!/usr/bin/python # -*- coding:utf-8 -*- from scrapy.spiders import Spider from lxml import etree from jredu.items import JreduItem class JreduSpider(Spider): name = 'tt' #爬虫的名字,必须的,唯一的 all
-
scrapy与selenium结合爬取数据(爬取动态网站)的示例代码
scrapy框架只能爬取静态网站.如需爬取动态网站,需要结合着selenium进行js的渲染,才能获取到动态加载的数据. 如何通过selenium请求url,而不再通过下载器Downloader去请求这个url? 方法:在request对象通过中间件的时候,在中间件内部开始使用selenium去请求url,并且会得到url对应的源码,然后再将 源 代码通过response对象返回,直接交给process_response()进行处理,再交给引擎.过程中相当于后续中间件的process_req
-
c# Selenium爬取数据时防止webdriver封爬虫的方法
背景 大家在使用Selenium + Chromedriver爬取网站信息的时候,以为这样就能做到不被网站的反爬虫机制发现.但是实际上很多参数和实际浏览器还是不一样的,只要网站进行判断处理,就能轻轻松松识别你是否使用了Selenium + Chromedriver模拟浏览器.其中 window.navigator.webdriver 就是很重要的一个. 问题窥探 正常浏览器打开是这样的 模拟器打开是这样的 ChromeOptions options = null; IWebDriver driv
-
Django结合使用Scrapy爬取数据入库的方法示例
在django项目根目录位置创建scrapy项目,django_12是django项目,ABCkg是scrapy爬虫项目,app1是django的子应用 2.在Scrapy的settings.py中加入以下代码 import os import sys sys.path.append(os.path.dirname(os.path.abspath('.'))) os.environ['DJANGO_SETTINGS_MODULE'] = 'django_12.settings' # 项目名.se
-
如何用六步教会你使用python爬虫爬取数据
目录 前言: python爬出六部曲 第一步:安装requests库和BeautifulSoup库: 第二步:获取爬虫所需的header和cookie: 第三步:获取网页: 第四步:解析网页: 第五步:分析得到的信息,简化地址: 第六步:爬取内容,清洗数据 爬取微博热搜的代码实例以及结果展示: 总结 前言: 用python的爬虫爬取数据真的很简单,只要掌握这六步就好,也不复杂.以前还以为爬虫很难,结果一上手,从初学到把东西爬下来,一个小时都不到就解决了. python爬出六部曲 第一步:安装re
随机推荐
- NodeJS和BootStrap分页效果的实现代码
- Win2008,windows2008序列号查看器
- js正则表达式replace替换变量方法
- Android编程实现设置TabHost当中字体的方法
- Android SQLite数据库增删改查操作的使用详解
- thinkPHP5.0框架独立配置与动态配置方法
- 算法系列15天速成 第五天 五大经典查找【中】
- Android实现View拖拽跟随手指移动效果
- C语言之实现字符串小写变大写的实例
- Bootstrap每天必学之轮播(Carousel)插件
- 提高IIS网站服务器效率的8个方法
- Java里volatile关键字是什么意思
- Android自定义View之组合控件实现类似电商app顶部栏
- Java的接口和抽象类深入理解
- 使用async-validator编写Form组件的方法
- PHP开发api接口安全验证的实例讲解
- ubuntu下Matlab_Linux添加工具包操作步骤
- 代码分析JAVA中PCM人声音频变声处理
- jquery引入外部CDN 加载失败则引入本地jq库
- js前端面试之同步与异步问题详解