在PHP中转换python报废代码

时间:2018-04-13 11:40:01

标签: php python regex instagram

所以这里是python的工作代码来刮掉来自instagram的图像

from __future__ import print_function
import json, re, requests

user = 'thefatfoxcamden'

profile = 'https://www.instagram.com/' + user

with requests.session() as s:
s.headers['user-agent'] = 'Mozilla/5.0'

end_cursor = ''
for count in range(1, 3):
    print('PAGE: ', count)
    r = s.get(profile, params={'max_id': end_cursor})

    data = re.search(r'window._sharedData = (\{.+?});</script>', r.text).group(1)
    j    = json.loads(data)

    for node in j['entry_data']['ProfilePage'][0]['user']['media']['nodes']: 
        if node['is_video']:
            page = 'https://www.instagram.com/p/' + node['code']
            r = s.get(page)
            url = re.search(r'"video_url": "([^"]+)"', r.text).group(1)
            print('VIDEO:', url)
        else:
            print('IMAGE:', node['display_src'])

    end_cursor = re.search(r'"end_cursor": "([^"]+)"', r.text).group(1)

代码工作真棒我现在想用PHP转换这段代码

我能得到的是现在我只能得到第一个循环

哪个代码在

之下
<?php

function scrape_insta($username) {
    $insta_source = file_get_contents('http://instagram.com/'.$username);
    $shards = explode('window._sharedData = ', $insta_source);
    $insta_json = explode(';</script>', $shards[1]);
    $insta_array = json_decode($insta_json[0], TRUE);
    return $insta_array;
}

 //Supply a username
 $my_account = 'thefatfoxcamden';
 $results_array = scrape_insta($my_account);
 $image_array= array();

  $dataList = ($results_array['entry_data']['ProfilePage'][0]['graphql']['user']['edge_owner_to_timeline_media']['edges']);


 for($i=0; $i<count($dataList); $i++){
  if($dataList[$i]['node'][__typename]=='GraphImage'){
    //echo '<img src="'.$dataList[$i]['node']['display_url'].'"></br>';
    echo '<img src="'.$dataList[$i]['node']['thumbnail_src'].'"></br>';

   }
}

上面的代码只调用一次

我想在循环中调用3次,就像python代码一样。

提前致谢

1 个答案:

答案 0 :(得分:0)

你可以像这样使用php运行python脚本,所以你不必转换整个python代码。就这样做。

  <?php system('python filename_with_path.py') ?>