Browse Source

add xiu girl yangchenchen scrape

develop
shixuesen 6 years ago
parent
commit
72a53d63dc
10 changed files with 635 additions and 9 deletions
  1. +8
    -0
      .idea/graph-tutorial.iml
  2. +8
    -0
      .idea/php.xml
  3. +6
    -2
      app/Console/Kernel.php
  4. +21
    -4
      app/Http/Controllers/InstagramController.php
  5. +1
    -1
      app/Instagram.php
  6. +37
    -1
      app/Services/InstagramService.php
  7. +94
    -0
      app/Services/XiuGirlsService.php
  8. +1
    -0
      composer.json
  9. +458
    -1
      composer.lock
  10. +1
    -0
      public/index.php

+ 8
- 0
.idea/graph-tutorial.iml View File

@ -9,6 +9,9 @@
<excludeFolder url="file://$MODULE_DIR$/vendor/beyondcode/laravel-dump-server" /> <excludeFolder url="file://$MODULE_DIR$/vendor/beyondcode/laravel-dump-server" />
<excludeFolder url="file://$MODULE_DIR$/vendor/binsoul/net-mqtt" /> <excludeFolder url="file://$MODULE_DIR$/vendor/binsoul/net-mqtt" />
<excludeFolder url="file://$MODULE_DIR$/vendor/binsoul/net-mqtt-client-react" /> <excludeFolder url="file://$MODULE_DIR$/vendor/binsoul/net-mqtt-client-react" />
<excludeFolder url="file://$MODULE_DIR$/vendor/cache/adapter-common" />
<excludeFolder url="file://$MODULE_DIR$/vendor/cache/filesystem-adapter" />
<excludeFolder url="file://$MODULE_DIR$/vendor/cache/tag-interop" />
<excludeFolder url="file://$MODULE_DIR$/vendor/clue/http-proxy-react" /> <excludeFolder url="file://$MODULE_DIR$/vendor/clue/http-proxy-react" />
<excludeFolder url="file://$MODULE_DIR$/vendor/clue/socks-react" /> <excludeFolder url="file://$MODULE_DIR$/vendor/clue/socks-react" />
<excludeFolder url="file://$MODULE_DIR$/vendor/composer" /> <excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
@ -31,6 +34,9 @@
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/promises" /> <excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/promises" />
<excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/psr7" /> <excludeFolder url="file://$MODULE_DIR$/vendor/guzzlehttp/psr7" />
<excludeFolder url="file://$MODULE_DIR$/vendor/hamcrest/hamcrest-php" /> <excludeFolder url="file://$MODULE_DIR$/vendor/hamcrest/hamcrest-php" />
<excludeFolder url="file://$MODULE_DIR$/vendor/jaeger/g-http" />
<excludeFolder url="file://$MODULE_DIR$/vendor/jaeger/phpquery-single" />
<excludeFolder url="file://$MODULE_DIR$/vendor/jaeger/querylist" />
<excludeFolder url="file://$MODULE_DIR$/vendor/jakub-onderka/php-console-color" /> <excludeFolder url="file://$MODULE_DIR$/vendor/jakub-onderka/php-console-color" />
<excludeFolder url="file://$MODULE_DIR$/vendor/jakub-onderka/php-console-highlighter" /> <excludeFolder url="file://$MODULE_DIR$/vendor/jakub-onderka/php-console-highlighter" />
<excludeFolder url="file://$MODULE_DIR$/vendor/justinrainbow/json-schema" /> <excludeFolder url="file://$MODULE_DIR$/vendor/justinrainbow/json-schema" />
@ -68,6 +74,7 @@
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-timer" /> <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-timer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-token-stream" /> <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/php-token-stream" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit" /> <excludeFolder url="file://$MODULE_DIR$/vendor/phpunit/phpunit" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/cache" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/container" /> <excludeFolder url="file://$MODULE_DIR$/vendor/psr/container" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-message" /> <excludeFolder url="file://$MODULE_DIR$/vendor/psr/http-message" />
<excludeFolder url="file://$MODULE_DIR$/vendor/psr/log" /> <excludeFolder url="file://$MODULE_DIR$/vendor/psr/log" />
@ -114,6 +121,7 @@
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/translation" /> <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/translation" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/var-dumper" /> <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/var-dumper" />
<excludeFolder url="file://$MODULE_DIR$/vendor/theseer/tokenizer" /> <excludeFolder url="file://$MODULE_DIR$/vendor/theseer/tokenizer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/tightenco/collect" />
<excludeFolder url="file://$MODULE_DIR$/vendor/tijsverkoyen/css-to-inline-styles" /> <excludeFolder url="file://$MODULE_DIR$/vendor/tijsverkoyen/css-to-inline-styles" />
<excludeFolder url="file://$MODULE_DIR$/vendor/valga/fbns-react" /> <excludeFolder url="file://$MODULE_DIR$/vendor/valga/fbns-react" />
<excludeFolder url="file://$MODULE_DIR$/vendor/vlucas/phpdotenv" /> <excludeFolder url="file://$MODULE_DIR$/vendor/vlucas/phpdotenv" />


+ 8
- 0
.idea/php.xml View File

@ -118,6 +118,14 @@
<path value="$PROJECT_DIR$/vendor/doctrine/cache" /> <path value="$PROJECT_DIR$/vendor/doctrine/cache" />
<path value="$PROJECT_DIR$/vendor/doctrine/event-manager" /> <path value="$PROJECT_DIR$/vendor/doctrine/event-manager" />
<path value="$PROJECT_DIR$/vendor/doctrine/dbal" /> <path value="$PROJECT_DIR$/vendor/doctrine/dbal" />
<path value="$PROJECT_DIR$/vendor/psr/cache" />
<path value="$PROJECT_DIR$/vendor/cache/tag-interop" />
<path value="$PROJECT_DIR$/vendor/cache/adapter-common" />
<path value="$PROJECT_DIR$/vendor/cache/filesystem-adapter" />
<path value="$PROJECT_DIR$/vendor/jaeger/g-http" />
<path value="$PROJECT_DIR$/vendor/jaeger/phpquery-single" />
<path value="$PROJECT_DIR$/vendor/jaeger/querylist" />
<path value="$PROJECT_DIR$/vendor/tightenco/collect" />
</include_path> </include_path>
</component> </component>
<component name="PhpProjectSharedConfiguration" php_language_level="7.1" /> <component name="PhpProjectSharedConfiguration" php_language_level="7.1" />


+ 6
- 2
app/Console/Kernel.php View File

@ -2,6 +2,7 @@
namespace App\Console; namespace App\Console;
use App\Services\XiuGirlsService;
use Illuminate\Console\Scheduling\Schedule; use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel; use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use App\Services\InstagramService; use App\Services\InstagramService;
@ -29,8 +30,11 @@ class Kernel extends ConsoleKernel
// $schedule->command('inspire') // $schedule->command('inspire')
// ->hourly(); // ->hourly();
$schedule->call(function () { $schedule->call(function () {
$service = new InstagramService();
$service->scrapeLikedUsers();
// $service = new InstagramService();
// $service->scrapeLikedUsers();
// $service->scanLocalFiles();
$xiuService = new XiuGirlsService();
$xiuService->scrapeXiuGirls();
echo "111"; echo "111";
})->everyMinute(); })->everyMinute();
} }


+ 21
- 4
app/Http/Controllers/InstagramController.php View File

@ -8,6 +8,7 @@ use Illuminate\Http\Request;
use Microsoft\Graph\Exception\GraphException; use Microsoft\Graph\Exception\GraphException;
use Microsoft\Graph\Graph; use Microsoft\Graph\Graph;
use Microsoft\Graph\Model; use Microsoft\Graph\Model;
use Illuminate\Support\Facades\Log;
class InstagramController extends Controller class InstagramController extends Controller
@ -50,11 +51,27 @@ class InstagramController extends Controller
// var_dump($event);exit; // var_dump($event);exit;
$subItemUrl = '/me/drive/items/' . $event->getId(). '/children?'.http_build_query($queryParams); $subItemUrl = '/me/drive/items/' . $event->getId(). '/children?'.http_build_query($queryParams);
$images = $graph->createRequest('GET', $subItemUrl) $images = $graph->createRequest('GET', $subItemUrl)
->setReturnType(Model\DriveItem::class)
// ->setReturnType(Model\DriveItem::class)
->execute(); ->execute();
dd($images);
exit;
var_dump($event);
// dd($images->getBody());
$body = $images->getBody();
$values = $body['value'];
foreach ($values as $value) {
Log::debug("current user".$event->getName() ." current image " . $value['name']);
Instagram::where('image_name', $value['name'])->update(['is_uploaded' => 1]);
}
while (array_key_exists('@odata.nextLink', $body)) {
$nextSubItemUrl = $body['@odata.nextLink'];
$response = $graph->createRequest('GET', $nextSubItemUrl)
->execute();
$body = $response->getBody();
$values = $body['value'];
foreach ($values as $value) {
Log::debug("current user".$event->getName() ." current image " . $value['name']);
Instagram::where('image_name', $value['name'])->update(['is_uploaded' => 1]);
}
}
// var_dump($event);
} }
// $viewData['events'] = $events; // $viewData['events'] = $events;


+ 1
- 1
app/Instagram.php View File

@ -17,5 +17,5 @@ class Instagram extends Model
// //
protected $table = "instagram"; protected $table = "instagram";
protected $fillable = ["image_name", "username", "image_url"];
protected $fillable = ["image_name", "username", "image_url", 'is_uploaded'];
} }

+ 37
- 1
app/Services/InstagramService.php View File

@ -93,6 +93,14 @@ class InstagramService
return $filename; return $filename;
} }
public function checkFileExists($fileName, $isDb = true, $filePrefix = '') {
if ($isDb) {
return Ins::where('image_name', $fileName)->where('is_uploaded', 1)->count() > 0;
} else {
return file_exists($filePrefix . $fileName) || file_exists($filePrefix . $fileName . ".back");
}
}
public function scrapeLikedUsers() public function scrapeLikedUsers()
{ {
$ig = new Instagram($this->debug, $this->truncatedDebug); $ig = new Instagram($this->debug, $this->truncatedDebug);
@ -113,7 +121,8 @@ class InstagramService
try { try {
$userList = file("/Users/shixuesen/OneDrive/Pictures/instagram/user.txt"); $userList = file("/Users/shixuesen/OneDrive/Pictures/instagram/user.txt");
$userList = array_slice($userList, 17);
// $userList = array_slice($userList, 17);
// $userList = ['1992.ai_'];
// print_r($userList);exit; // print_r($userList);exit;
// print_r($userList); // print_r($userList);
foreach ($userList as $userName) { foreach ($userList as $userName) {
@ -184,6 +193,7 @@ class InstagramService
// This will be a null value again when we've reached the last page! // This will be a null value again when we've reached the last page!
// And we will stop looping through pages as soon as maxId becomes null. // And we will stop looping through pages as soon as maxId becomes null.
$maxId = $response->getNextMaxId(); $maxId = $response->getNextMaxId();
echo "\n new maxId: ". $maxId ."\n";
// Sleep for 5 seconds before requesting the next page. This is just an // Sleep for 5 seconds before requesting the next page. This is just an
// example of an okay sleep time. It is very important that your scripts // example of an okay sleep time. It is very important that your scripts
@ -226,4 +236,30 @@ class InstagramService
echo 'Something went wrong: ' . $e->getMessage() . "\n"; echo 'Something went wrong: ' . $e->getMessage() . "\n";
} }
} }
public function scanLocalFiles($baseDir = '/Users/shixuesen/OneDrive/Pictures/instagram/')
{
$dirs = scandir($baseDir, 1);
foreach ($dirs as $subDir) {
if ($subDir == '.' || $subDir == '..') {
continue;
}
$subPath = $baseDir . $subDir;
if (is_dir($subPath)) {
$files = scandir($subPath);
foreach ($files as $file){
if ($file == '.' || $file == '..') {
continue;
}
echo "now file: ". $file. "\n";
Ins::firstOrCreate(['image_name' => $file], [
'username' => $subDir,
'is_uploaded' => 1,
'image_url' => ''
]);
}
}
}
}
} }

+ 94
- 0
app/Services/XiuGirlsService.php View File

@ -0,0 +1,94 @@
<?php
namespace App\Services;
use function PHPSTORM_META\type;
use QL\QueryList;
use Illuminate\Http\File;
use Illuminate\Support\Facades\Storage;
class XiuGirlsService
{
public function scrapeXiuGirls()
{
$baseUrl = "http://www.xiugirls.com/girl/22162";
$albumSelector = ".entryAblum > .star-mod-bd > ul > li > a";
$ql = QueryList::get($baseUrl)->find($albumSelector)->attrs("href");
$items = $ql->all();
$items = array_slice($items, 49);
// print_r($items);exit;
$baseUrl = "http://www.xiugirls.com";
$baseDir = "/Users/shixuesen/Documents/xiugirl/";
// $items = array_slice($items, 1);
// print_r($items);exit;
foreach ($items as $item) {
print_r($item);
$html = QueryList::get($baseUrl. $item);
$title = $html->find("h1 > a")->texts();
print_r($title);
// print_r(is_dir($baseDir));exit;
$albumPath = "";
// if (count($title) >0 ) {
// if (!file_exists($baseDir .$title[0])) {
// mkdir($baseDir .$title[0]);
// }
// $albumPath = $baseDir.$title[0];
// } else {
if (!file_exists($baseDir .explode("/", $item)[2])) {
mkdir($baseDir .explode("/", $item)[2]);
}
$albumPath = $baseDir.explode("/", $item)[2];
// }
$images = QueryList::get($baseUrl . $item)->find(".swi-hd > img")->attrs("src");
// mkdir("")
// print_r($images);
foreach ($images as $image) {
if (file_exists($albumPath."/".pathinfo("http:".$image)['filename'].".jpg")) {
continue;
// unlink($albumPath."/".pathinfo("http:".$image)['filename'].".jpg");
}
$opts = array('http'=> ['header' =>
"User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36 \r\n
Referer:".$baseUrl.$item."\r\n"
]);
$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL,"http:".$image);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2000);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36');
curl_setopt($curl_handle, CURLOPT_REFERER, $baseUrl . $item);
$query = curl_exec($curl_handle);
$i = 1;
while ($query === false) {
echo 'Curl error: ' . curl_error($curl_handle) ."\n";
echo "retry times: " .$i++ ." times \n";
sleep(1);
$query = curl_exec($curl_handle);
if ($i >= 100) {
break;
}
}
echo curl_error($curl_handle);
$fp = fopen($albumPath."/".pathinfo("http:".$image)['filename'].".jpg", 'x');
fwrite($fp, $query);
fclose($fp);
// file_put_contents("1.jpg", $query);
// curl_close($curl_handle);
// exit;
// $context = stream_context_create($opts);
// $a = file_get_contents("http:".$image, false, $context);exit;
// Storage::put($item.pathinfo($image)["filename"], file_get_contents("http:".$image, false, $context));
}
// exit;
}
}
}

+ 1
- 0
composer.json View File

@ -12,6 +12,7 @@
"barryvdh/laravel-ide-helper": "^2.5", "barryvdh/laravel-ide-helper": "^2.5",
"doctrine/dbal": "^2.9", "doctrine/dbal": "^2.9",
"fideloper/proxy": "^4.0", "fideloper/proxy": "^4.0",
"jaeger/querylist": "^4.1",
"laravel/framework": "5.7.*", "laravel/framework": "5.7.*",
"laravel/tinker": "^1.0", "laravel/tinker": "^1.0",
"league/oauth2-client": "dev-master", "league/oauth2-client": "dev-master",


+ 458
- 1
composer.lock View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "def97ea3aae1e41be78340bb99ea6723",
"content-hash": "dfcabc6cfdad87f334d118b901a24414",
"packages": [ "packages": [
{ {
"name": "barryvdh/laravel-ide-helper", "name": "barryvdh/laravel-ide-helper",
@ -261,6 +261,208 @@
], ],
"time": "2017-08-20T08:06:53+00:00" "time": "2017-08-20T08:06:53+00:00"
}, },
{
"name": "cache/adapter-common",
"version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-cache/adapter-common.git",
"reference": "6320bb5f5574cb88438059b59f8708da6b6f1d32"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-cache/adapter-common/zipball/6320bb5f5574cb88438059b59f8708da6b6f1d32",
"reference": "6320bb5f5574cb88438059b59f8708da6b6f1d32",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"cache/tag-interop": "^1.0",
"php": "^5.6 || ^7.0",
"psr/cache": "^1.0",
"psr/log": "^1.0",
"psr/simple-cache": "^1.0"
},
"require-dev": {
"cache/integration-tests": "^0.16",
"phpunit/phpunit": "^5.7.21"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.1-dev"
}
},
"autoload": {
"psr-4": {
"Cache\\Adapter\\Common\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Aaron Scherer",
"email": "aequasi@gmail.com",
"homepage": "https://github.com/aequasi"
},
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com",
"homepage": "https://github.com/nyholm"
}
],
"description": "Common classes for PSR-6 adapters",
"homepage": "http://www.php-cache.com/en/latest/",
"keywords": [
"cache",
"psr-6",
"tag"
],
"time": "2018-07-08T13:04:33+00:00"
},
{
"name": "cache/filesystem-adapter",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-cache/filesystem-adapter.git",
"reference": "d50680b6dabbe39f9831f5fc9efa61c09d936017"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-cache/filesystem-adapter/zipball/d50680b6dabbe39f9831f5fc9efa61c09d936017",
"reference": "d50680b6dabbe39f9831f5fc9efa61c09d936017",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"cache/adapter-common": "^1.0",
"league/flysystem": "^1.0",
"php": "^5.6 || ^7.0",
"psr/cache": "^1.0",
"psr/simple-cache": "^1.0"
},
"provide": {
"psr/cache-implementation": "^1.0"
},
"require-dev": {
"cache/integration-tests": "^0.16",
"phpunit/phpunit": "^5.7.21"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0-dev"
}
},
"autoload": {
"psr-4": {
"Cache\\Adapter\\Filesystem\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Aaron Scherer",
"email": "aequasi@gmail.com",
"homepage": "https://github.com/aequasi"
},
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com",
"homepage": "https://github.com/nyholm"
}
],
"description": "A PSR-6 cache implementation using filesystem. This implementation supports tags",
"homepage": "http://www.php-cache.com/en/latest/",
"keywords": [
"cache",
"filesystem",
"psr-6",
"tag"
],
"time": "2017-07-16T21:09:25+00:00"
},
{
"name": "cache/tag-interop",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/php-cache/tag-interop.git",
"reference": "c7496dd81530f538af27b4f2713cde97bc292832"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-cache/tag-interop/zipball/c7496dd81530f538af27b4f2713cde97bc292832",
"reference": "c7496dd81530f538af27b4f2713cde97bc292832",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"php": "^5.5 || ^7.0",
"psr/cache": "^1.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0-dev"
}
},
"autoload": {
"psr-4": {
"Cache\\TagInterop\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com",
"homepage": "https://github.com/nyholm"
},
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com",
"homepage": "https://github.com/nicolas-grekas"
}
],
"description": "Framework interoperable interfaces for tags",
"homepage": "http://www.php-cache.com/en/latest/",
"keywords": [
"cache",
"psr",
"psr6",
"tag"
],
"time": "2017-03-13T09:14:27+00:00"
},
{ {
"name": "clue/http-proxy-react", "name": "clue/http-proxy-react",
"version": "v1.3.0", "version": "v1.3.0",
@ -1662,6 +1864,153 @@
], ],
"time": "2018-12-04T20:46:45+00:00" "time": "2018-12-04T20:46:45+00:00"
}, },
{
"name": "jaeger/g-http",
"version": "V1.6.0",
"source": {
"type": "git",
"url": "https://github.com/jae-jae/GHttp.git",
"reference": "eb34d266a07c687aef45087370ef47d48321bd2e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/jae-jae/GHttp/zipball/eb34d266a07c687aef45087370ef47d48321bd2e",
"reference": "eb34d266a07c687aef45087370ef47d48321bd2e",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"cache/filesystem-adapter": "^1.0",
"guzzlehttp/guzzle": "^6.2"
},
"type": "library",
"autoload": {
"psr-4": {
"Jaeger\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jaeger",
"email": "JaegerCode@gmail.com"
}
],
"description": "Simple Http client base on GuzzleHttp",
"time": "2018-12-12T04:21:15+00:00"
},
{
"name": "jaeger/phpquery-single",
"version": "0.9.9",
"source": {
"type": "git",
"url": "https://github.com/jae-jae/phpQuery-single.git",
"reference": "6c12e3a1648dc619f16920f96082f397d74e0127"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/jae-jae/phpQuery-single/zipball/6c12e3a1648dc619f16920f96082f397d74e0127",
"reference": "6c12e3a1648dc619f16920f96082f397d74e0127",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"autoload": {
"classmap": [
"phpQuery.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Tobiasz Cudnik",
"email": "tobiasz.cudnik@gmail.com",
"homepage": "https://github.com/TobiaszCudnik",
"role": "Developer"
},
{
"name": "Jaeger",
"role": "Packager"
}
],
"description": "phpQuery单文件版本,是Querylist的依赖(http://querylist.cc/),phpQuery项目主页:http://code.google.com/p/phpquery/",
"homepage": "http://code.google.com/p/phpquery/",
"time": "2017-12-07T02:13:37+00:00"
},
{
"name": "jaeger/querylist",
"version": "V4.1.0",
"source": {
"type": "git",
"url": "https://github.com/jae-jae/QueryList.git",
"reference": "df9e3bbf1943b77ac7ab91bd3fc59643fe458044"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/jae-jae/QueryList/zipball/df9e3bbf1943b77ac7ab91bd3fc59643fe458044",
"reference": "df9e3bbf1943b77ac7ab91bd3fc59643fe458044",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"jaeger/g-http": "^1.1",
"jaeger/phpquery-single": "^0.9",
"php": ">=7.0",
"tightenco/collect": "^5"
},
"require-dev": {
"phpunit/phpunit": "^7.5",
"symfony/var-dumper": "^3.3"
},
"type": "library",
"autoload": {
"psr-4": {
"QL\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jaeger",
"email": "JaegerCode@gmail.com"
}
],
"description": "Simple, elegant, extensible PHP Web Scraper (crawler/spider),Use the css3 dom selector,Based on phpQuery! 简洁、优雅、可扩展的PHP采集工具(爬虫),基于phpQuery。",
"homepage": "http://querylist.cc",
"keywords": [
"QueryList",
"phpQuery",
"spider"
],
"time": "2018-12-12T07:29:31+00:00"
},
{ {
"name": "jakub-onderka/php-console-color", "name": "jakub-onderka/php-console-color",
"version": "v0.2", "version": "v0.2",
@ -3158,6 +3507,58 @@
], ],
"time": "2016-01-26T13:27:02+00:00" "time": "2016-01-26T13:27:02+00:00"
}, },
{
"name": "psr/cache",
"version": "1.0.1",
"source": {
"type": "git",
"url": "https://github.com/php-fig/cache.git",
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Cache\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for caching libraries",
"keywords": [
"cache",
"psr",
"psr-6"
],
"time": "2016-08-06T20:24:11+00:00"
},
{ {
"name": "psr/container", "name": "psr/container",
"version": "1.0.0", "version": "1.0.0",
@ -5280,6 +5681,62 @@
], ],
"time": "2019-01-03T09:07:35+00:00" "time": "2019-01-03T09:07:35+00:00"
}, },
{
"name": "tightenco/collect",
"version": "v5.7.26",
"source": {
"type": "git",
"url": "https://github.com/tightenco/collect.git",
"reference": "c1a36a2a8a0aa731c1acdcd83f57724ffe630d00"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/tightenco/collect/zipball/c1a36a2a8a0aa731c1acdcd83f57724ffe630d00",
"reference": "c1a36a2a8a0aa731c1acdcd83f57724ffe630d00",
"shasum": "",
"mirrors": [
{
"url": "https://dl.laravel-china.org/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"php": "^7.1.3",
"symfony/var-dumper": ">=3.4 <5"
},
"require-dev": {
"mockery/mockery": "^1.0",
"nesbot/carbon": "^1.26.3",
"phpunit/phpunit": "^7.0"
},
"type": "library",
"autoload": {
"files": [
"src/Collect/Support/helpers.php",
"src/Collect/Support/alias.php"
],
"psr-4": {
"Tightenco\\Collect\\": "src/Collect"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Taylor Otwell",
"email": "taylorotwell@gmail.com"
}
],
"description": "Collect - Illuminate Collections as a separate package.",
"keywords": [
"collection",
"laravel"
],
"time": "2019-02-13T19:40:13+00:00"
},
{ {
"name": "tijsverkoyen/css-to-inline-styles", "name": "tijsverkoyen/css-to-inline-styles",
"version": "2.2.1", "version": "2.2.1",


+ 1
- 0
public/index.php View File

@ -6,6 +6,7 @@
* @package Laravel * @package Laravel
* @author Taylor Otwell <taylor@laravel.com> * @author Taylor Otwell <taylor@laravel.com>
*/ */
set_time_limit(0);
define('LARAVEL_START', microtime(true)); define('LARAVEL_START', microtime(true));


Loading…
Cancel
Save