С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/34: Рейтинг темы: голосов - 34, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 2

Скрипт, который открывает html-страницы от лица заданного пользователя

13.05.2015, 16:01. Показов 6417. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Возникла такая интересная задача. Существует ресурс для музыкантов promodj.com. К особенностям данного ресурса относится существование колонки «здесь были» на странице каждого пользователя, в которую заносятся гиперссылки на страницы последних посетителей. Одним словом, если пользователь топ99999 заходит на страницу пользователя топ1, то ссылка на топ99999 какое-то небольшое время провисит на странице топ1.

Это создаёт интересный механизм для промоушена авторов, которые пока не так популярны, но пишут интересную музыку. Что особенно приятно — это то, что данный механизм не нарушает правила сайта и никого не раздражает, в отличие от, скажем, спама в личку со ссылками на чьи-то материалы с «промо-аккаунтов».

Соответственно встаёт задача о создании скрипта, который будет удовлетворять таким условиям.
  1. Скрипт запускается и работает, пока его не закроют, в фоновом режиме
  2. Скрипт читает из текстового файла ссылки на страницы, и поочерёдно открывает (в фоне) эти страницы
  3. При открытии страницы передаётся необходимая информация о пользователе, чтобы сервер обработал запрос для конкретного пользователя, а не анонимно
  4. После завершения работы со всеми ссылками из файла скрипт уходит в сон на заданный промежуток времени (наглеть и забивать весь трафик своей персоной мы тоже не хотим)

Если у кого-то из уважаемых посетителей возникнет желание решить эту задачу и написать скрипт, оказав помощь музыкантам, то буду вам весьма благодарен. Если нет — всё равно спасибо за ваше время и за прочтение данного поста.

В качестве продвинутой опции было бы красиво извлекать ссылки на страницы популярных пользователей не из файла, а из разнообразных чартов на сайте наподобие топ-100, но это, полагаю, существенно и без необходимости усложнит задачу.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.05.2015, 16:01
Ответы с готовыми решениями:

Создать скрипт который выводит имя пользователя, компьютера и домена пользователя которым выполняется скрипт
С помощью скрипта выведите имя пользователя, компьютера и домена пользователя которым выполняется скрипт. Большая благодарность тому кто...

скрипт, который бы распозновал ай пи поситителя или через таблицу днс провайдера местонахождение пользователя который зашел на страничку
Есть ли такой скрипт, который бы распозновал ай пи поситителя или через таблицу днс провайдера местонахождение пользователя который зашел...

Нужен простейший php скрипт, который выводит ip. днс,маску и шлюз того пользователя который находится на странице
Нужен простейший php скрипт, который выводит ip. днс,маску и шлюз того пользователя который находится на странице

3
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
14.05.2015, 11:18
Лучший ответ Сообщение было отмечено aibolit как решение

Решение

Теоретически вот так должно работать:

Тут я логинюсь с логином SuperBoom (имя: Долли) с паролем superpass и посещаю страницу пользователя spam84box (имя: Колли).
Линки берутся с топ100.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import requests
import lxml.html
 
 
def get_top():
    url = 'http://promodj.com/top100'
    page = requests.get(url).text                   
    parser = lxml.html.fromstring(page)
    links = parser.cssselect('div.title a')
    return [link.get('href') for link in links]
 
 
def goDoTheMagic():
    with requests.session() as c:
        url = 'http://promodj.com/login/'
        login = 'SuperBoom'
        password = 'superpass'
 
        c.get(url)
        login_data = dict(login=login, password=password, backto='http://promodj.com/g3489107')
        c.post(url, data=login_data, headers={"Referer": "http://promodj.com/"})
        
        top = get_top()
        
        for link in top:
            print("Visiting ", link)
            c.get(link)
 
goDoTheMagic()
после этого на странице посещений Колли:
1
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 2
14.05.2015, 15:08  [ТС]
Потрясающе — скрипт работает! Спасибо тебе огромное, добрый человек! Будь уверен, из этого кода будет извлечено много пользы)

Про колонку: она отображается на странице каждого пользователя (отметил на приложенном скриншоте).

P.S.: Поставил 4 разные версии Python, пока смог подключить и requests, и lxml и cssselect (lxml был капризен к версии, а в 2.7.0 не нашёл Scripts/pip) , но в итоге всё замечательно
Миниатюры
Скрипт, который открывает html-страницы от лица заданного пользователя  
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
14.05.2015, 15:19
Всегда пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.05.2015, 15:19
Помогаю со студенческими работами здесь

В место открытия страницы - открывает index.html
Здравствуйте. Не нашел чего-то куда написать.. поэтому напишу здесь. если что, то модераторы, перенесите тему в нужный раздел, пожалуйста. ...

скрипт, который: - запрашивает у пользователя имя файла
скрипт, который: - запрашивает у пользователя имя файла и текстовую строку; - проверяет наличие файла в текущей папке; - если файл...

скрипт, который принимает от пользователя натуральное число
скрипт, который принимает от пользователя натуральное число 5 < N < 15, формирует список из N псевдослучайных целых чисел со значениями в...

Скрипт который выводит название страны пользователя (по айпи)
Парни, привет. Может кто поможет. Нужен скрипт который будет выводить на страницу html название страны пользователя (судя по айпи) или...

сделайте скрипт который выводит местное время пользователя
заранее спасибо скиньте код и не ругаться на автора


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru