所以这里是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代码一样。
提前致谢
答案 0 :(得分:0)
你可以像这样使用php运行python脚本,所以你不必转换整个python代码。就这样做。
<?php system('python filename_with_path.py') ?>