|
| Дата |
|
USD/RUB | 89.7026 | BTC/USD | 69231.5399 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
24.02.2015, 20:38
|
#1
|
Fuck Yeah
Регистрация: 08.10.2009
Адрес: Ghetto
Сообщений: 2,689
Бабло: $1436314
|
Пару строк на perl или python?
Есть файл
source.txt со списком урлов
http://site.com/
и есть 3 запроса например:
zapros?id=1
zapros?id=2
zapros?id=3
В контенте выдается 1 строка по каждому запросу, нужно что бы прошелся по списку урлов, подставил запросы по очереди к каждому урл и сохранил все в файл в виде:
http://site.com/;контент из zapros?id=1;контент из zapros?id=2;контент из zapros?id=3
Скину на пиво 10$
|
|
|
24.02.2015, 21:16
|
#2
|
Senior Member
Регистрация: 02.09.2013
Сообщений: 145
Бабло: $37450
|
На пхп как-то так:
PHP код:
<?php
$urls = file('source.txt');
$fp = fopen('itog.txt', 'a');
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => 'gzip, deflate',
CURLOPT_HEADER => false,
CURLOPT_TIMEOUT => 10,
CURLOPT_CONNECTTIMEOUT => 10
));
foreach ($urls as $url) {
$write = $url;
for ($i = 1; $i < 4; $i++) {
curl_setopt($curl, CURLOPT_URL, $url."zapros?id=".$i);
$out = curl_exec($curl);
$write = $write . ";" . $out;
}
fwrite($fp, $write);
}
fclose($fp);
curl_close($curl);
|
|
|
24.02.2015, 21:20
|
#3
|
Fuck Yeah
Регистрация: 08.10.2009
Адрес: Ghetto
Сообщений: 2,689
Бабло: $1436314
ТС -->
|
ТС
Немного криво я описал задание, сорри. Не по id надо, а именно подставить запросы.
zapros1
zapros2
zapros3
|
|
|
24.02.2015, 21:21
|
#4
|
Ебланнед
Регистрация: 20.08.2008
Сообщений: 1,067
Бабло: $153400
|
PHP код:
import urllib2
sites = open('source.txt', 'r')
queries = ['zapros?id=1', 'zapros?id=2', 'zapros?id=3']
output = open("out.txt", 'w')
for site in sites:
out = site.strip()
for query in queries:
res = urllib2.urlopen(site.strip() + query.strip()).read()
out += ';' + res
output.write(out + "\n")
|
|
|
24.02.2015, 21:29
|
#5
|
Fuck Yeah
Регистрация: 08.10.2009
Адрес: Ghetto
Сообщений: 2,689
Бабло: $1436314
ТС -->
|
ТС
Цитата:
Сообщение от sliderxxx
PHP код:
import urllib2
sites = open('source.txt', 'r')
queries = ['zapros?id=1', 'zapros?id=2', 'zapros?id=3']
output = open("out.txt", 'w')
for site in sites:
out = site.strip()
for query in queries:
res = urllib2.urlopen(site.strip() + query.strip()).read()
out += ';' + res
output.write(out + "\n")
|
Из первого урла вытащило, и все и выдало вот такую ошибку
Цитата:
C:\Documents and Settings\Admin>"C:\Documents and Settings\Admin\wpsql.py"
Traceback (most recent call last):
File "C:\Documents and Settings\Admin\wpsql.py", line 8, in <module>
res = urllib2.urlopen(site.strip() + query.strip()).read()
File "C:\Python27\lib\urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "C:\Python27\lib\urllib2.py", line 398, in open
response = meth(req, response)
File "C:\Python27\lib\urllib2.py", line 511, in http_response
'http', request, response, code, msg, hdrs)
File "C:\Python27\lib\urllib2.py", line 436, in error
return self._call_chain(*args)
File "C:\Python27\lib\urllib2.py", line 370, in _call_chain
result = func(*args)
File "C:\Python27\lib\urllib2.py", line 519, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 403: Forbidden
|
|
|
|
24.02.2015, 21:35
|
#6
|
Ебланнед
Регистрация: 20.08.2008
Сообщений: 1,067
Бабло: $153400
|
Проверки на ошибки нет. Тебе кинуло 403 ошибку (HTTP Error 403: Forbidden). Подразумевалось что все урлы валидные.
|
|
|
24.02.2015, 21:36
|
#7
|
Fuck Yeah
Регистрация: 08.10.2009
Адрес: Ghetto
Сообщений: 2,689
Бабло: $1436314
ТС -->
|
ТС
Понял, разобрался уже. Пару урлов просто уберу из source и все, выдавало просто пустое значение на одном из сайтов. Спасибо, кидай кошель в ЛС
|
|
|
24.02.2015, 21:43
|
#8
|
Ебланнед
Регистрация: 20.08.2008
Сообщений: 1,067
Бабло: $153400
|
Ушел за пивом
|
|
|
24.02.2015, 21:45
|
#9
|
Fuck Yeah
Регистрация: 08.10.2009
Адрес: Ghetto
Сообщений: 2,689
Бабло: $1436314
ТС -->
|
ТС
Цитата:
Сообщение от sliderxxx
Ушел за пивом
|
|
|
|
|