С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
trarbish
46 / 46 / 10
Регистрация: 11.03.2014
Сообщений: 133
1

Программа для обновления объявлений. Начальный этап

31.03.2014, 08:36. Просмотров 2626. Ответов 32
Метки нет (Все метки)

Всем привет!

Давно хотел написать программку со следующим функционалом. Как вы знаете, на многих сайтах с объявлениями о продаже-сдаче и т.п., когда даешь объявление, оно постепенно скатывается вниз списка.

Очень хочу написать программу, которой нужно будет подсовывать адрес объявления, а программа же будет заходить по этой ссылке, копировать всю информацию, стирать объявление и создавать новое.

Поскольку мой опыт программирования сводится к решению различных математических задач в Matlab и Python, а также недолгому администрированию небольшого сайта, прошу вас подсказать с чего начинать в данном вопросе, потому что тут я совсем новичок.

Хотелось бы узнать в первую очередь, годится ли для моей задачи Python? И соответственно куда копать дальше (какие библиотеки и т.д.). В общем кода я не прошу, хочу сам написать, а вот если кто может обозначить направление, буду очень благодарен!

P.s. Начал подобную тему в Java-разделе, но там не отвечают. Решил попытать счастье здесь, надеюсь на понимание
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2014, 08:36
Ответы с готовыми решениями:

Обновление объявлений на сайтах типа авито и т.п. Начальный этап
Всем привет! Давно хотел написать программку со следующим функционалом. Как...

Создание программы для автоматического обновления объявлений на сайтах
Здравствуйте! Нужно вот что : Реализовать поиск целевой кнопки на...

Программа для занесения объявлений в текстовый файл, управление объявлениями из текстового файла
Доброго времени суток. Необходимо создать программу которая выполняет такие...

Программа для обновления ОС.
помогите пожалуйста найти программу для обновления ос, чтоб на этой программе...

Программа для обновления новостей
Есть несколько новостных сайтов по интересной мне тематике, можно как-то...

32
XTIPacko
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 145
12.02.2016, 16:27 21
Цитата Сообщение от alex925 Посмотреть сообщение
Message: Element is
я не привык к мессэджам питона
alex925, блин а как сделать чтобы можно было с ним работать (с элементом)? хотелось бы без GUI запускать это...
0
alex925
2675 / 2281 / 631
Регистрация: 19.03.2012
Сообщений: 8,831
12.02.2016, 16:32 22
Вообще у меня вот все работает на пример, есть поправить 1 косяк
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
from selenium import webdriver
 
driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(10)
driver.get("http://www.hh.ru")
 
email = driver.find_element_by_css_selector('label.login-input:nth-child(1) > span:nth-child(2) > input:nth-child(1)')
email.send_keys('ЯЩИК')
 
password = driver.find_element_by_css_selector('label.login-input:nth-child(2) > span:nth-child(2) > input:nth-child(1)')
password.send_keys("ПАРОЛЬ")
 
signin = driver.find_element_by_xpath('.//*[@id=\'js-disabled\']/body/div[3]/div/div[3]/div/div/div[2]/form/div[3]/input')
signin.click()
 
driver.implicitly_wait(3)
driver.get("http://krasnodar.hh.ru/applicant/resumes")
driver.implicitly_wait(3)
resume =  driver.find_element_by_xpath(".//*[@id='js-disabled']/body/div[3]/div[2]/div[2]/div[2]/div/div/span/a")
resume.click()
driver.implicitly_wait(3)
update_button = driver.find_element_by_xpath(".//*[@id='js-disabled']/body/div[3]/div[2]/div[5]/div[3]/div[2]/span")
update_button.click()
driver.quit()
0
XTIPacko
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 145
12.02.2016, 16:37 23
alex925, у меня тоже, но так он GUI выдает)

Добавлено через 1 минуту
ю увидел ща проверю
0
alex925
2675 / 2281 / 631
Регистрация: 19.03.2012
Сообщений: 8,831
12.02.2016, 16:37 24
Естественно выдает, ты ведь сам запускаешь браузер, естественно будет показываться его окно и по другому ни как!
0
XTIPacko
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 145
12.02.2016, 16:43 25
alex925, да ладно никак, как-то можно ...
0
alex925
2675 / 2281 / 631
Регистрация: 19.03.2012
Сообщений: 8,831
12.02.2016, 16:46 26
Цитата Сообщение от XTIPacko Посмотреть сообщение
да ладно никак, как-то можно
Используя этот инструмент НИКАК. Другой вопрос, что можно использоваться например QWebView из pyqt. Там можно не вызывать метод show у объекта и тогда окно не будет показываться.
0
XTIPacko
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 145
12.02.2016, 17:25 27
alex925, ну Zarex как-то же сделал)
0
alex925
2675 / 2281 / 631
Регистрация: 19.03.2012
Сообщений: 8,831
12.02.2016, 19:11 28
Цитата Сообщение от XTIPacko Посмотреть сообщение
Zarex как-то же сделал)
Он ни где не писал, что хочет скрыть окно браузера.

Ты, занимаешься ерундой, потому что пытаешься заставить вещи работать так как они не должны работать. Ещё раз повторяю, ты выбрал неудачный для своих целей инструмент.
0
arctblake
50 / 50 / 17
Регистрация: 03.12.2015
Сообщений: 167
12.02.2016, 19:15 29
phantomJS
0
XTIPacko
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 145
13.02.2016, 10:26 30
Он ни где не писал,
Python
1
display = Display(visible=0, size=(1024, 768))
alex925, в коде он pyvirtualdisplay использовал смотри сообщение 17. То, что неудачное согласен. Я еще видел HTTP запрос просто отправляли с кода на Delphi. Более удачное, наверное не для моего уровня сейчас и времени схавает еще больше.
arctblake, да я пробывал phantomJS,но пришлось снапшот откатить..., чет система виснуть сильно зависать стала позже еще попробую
0
alex925
2675 / 2281 / 631
Регистрация: 19.03.2012
Сообщений: 8,831
13.02.2016, 10:59 31
Цитата Сообщение от XTIPacko Посмотреть сообщение
чет система виснуть сильно зависать
Сомневаюсь, что это вина phantomJS
Цитата Сообщение от XTIPacko Посмотреть сообщение
Я еще видел HTTP запрос
Да, можно заюзать requests

Если убрать строку 31, то не окно отображаться не будет и это вариант решения без костылей
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
import sys
from PyQt4 import QtCore, QtGui, QtWebKit
 
 
class Browser(QtWebKit.QWebView):
    def __init__(self, *arg, **args):
        QtWebKit.QWebView.__init__(self, *arg, **args)
 
        self.loadFinished.connect(self.load_complete)
 
    def auth(self):
        page = self.page().mainFrame().documentElement()
 
        user = page.findFirst('label.login-input:nth-child(1) > span:nth-child(2) > input:nth-child(1)')
        user.evaluateJavaScript("this.value='some email'")
 
        password = page.findFirst('label.login-input:nth-child(2) > span:nth-child(2) > input:nth-child(1)')
        password.evaluateJavaScript("this.value='some password'")
 
        page.findFirst('input.bloko-button_primary-minor').evaluateJavaScript('this.click()')
 
    def load_complete(self):
        page = self.page().mainFrame().documentElement()
 
        self.auth()
 
 
app = QtGui.QApplication(sys.argv)
b = Browser()
b.load(QtCore.QUrl('http://samara.hh.ru'))
b.show()
sys.exit(app.exec_())
0
XTIPacko
0 / 0 / 0
Регистрация: 25.05.2012
Сообщений: 145
13.02.2016, 11:14 32
alex925, я попробую спасибо) А как CSS путь извлекается?
просто ближайщая цель CCNP затем буду с питоном разбираться, а Ot я практически не знаю )
0
alex925
2675 / 2281 / 631
Регистрация: 19.03.2012
Сообщений: 8,831
13.02.2016, 11:18 33
Цитата Сообщение от XTIPacko Посмотреть сообщение
А как CSS путь извлеается?
Банально через браузер (через отладчик), ну или можно ручками писать.
0
13.02.2016, 11:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.02.2016, 11:18

Где скачать обновления для AVG Internet Security для обновления в оффлайн режиме?
Сабж.

Необходимо организовать доску объявлений с возможностью оплаты объявлений
Подскажите, что лучше использовать для решения следующей задачи: Необходимо...

СИСТЕМЫ ПУБЛИКАЦИИ ОБЪЯВЛЕНИЙ или доска объявлений
помоги те разобратся с СИСТЕМЫ ПУБЛИКАЦИИ ОБЪЯВЛЕНИЙ, кто может объяснить...


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

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru