Форум сайта python.su
PooHМожно узнать по подробней как вы это получили?, ну и наверное данная ссылка не пойдет, так-как мне конкретно нужно получить “Дата публикации” как в первом посту на скрине.
Пойдет?
Отредактировано Vigi (Фев. 22, 2017 03:35:43)
Офлайн
VigiВ chrome открыл инструменты разработчика, вкладку Network, опцию XHR и посмотрел запросы к серверу. Это приложение написано на angular, оно тянет данные с сервера и строит по ним страницу, вот я и посмотрел какие именно данные оно тянет. С параметрами запросов еще надо разобраться, но это уже сами.
Можно узнать по подробней как вы это получили
Отредактировано PooH (Фев. 22, 2017 04:17:13)
Офлайн
VigiКогда весь Интернет открывается, а какой-то один сайт не открывается, то он идёт на три весёлых буквы. Не буду я браузер менять из-за какой-то недоработки, потому что мой браузер для меня ценен и важен (и вообще бэкапится по своему).
Что-то странное у вас
Офлайн
PooHсенькс, поковыряюсь…
В chrome открыл инструменты разработчика, вкладку Network, опцию XHR и посмотрел запросы к серверу. Это приложение написано на angular, оно тянет данные с сервера и строит по ним страницу, вот я и посмотрел какие именно данные оно тянет. С параметрами запросов еще надо разобраться, но это уже сами.
PooHПривет! я 276 км от вас в сторону Рубцовска
PS: привет земляк, я с Барнаула
Офлайн
наверное нужно в сторону selenium на движке PhantomJS смотреть….?
Офлайн
Vigiесли только это то можно спарсить phantomjs страницу в pdf и pdf в text, selenium не нужен
ак-как мне конкретно нужно получить “Дата публикации” как в первом посту на скрине.
Отредактировано vic57 (Фев. 22, 2017 11:12:45)
Офлайн
у тебя задача сложнее. попробовал спарсить
var page = require('webpage').create(); var fs = require('fs'); var path = 'page.html'; var url='http://bus.gov.ru/pub/agency/8968/tasks/3472492'; page.open(url, function (status) { console.log('status:',status); var content = page.content; fs.write(path,content,'w'); phantom.exit(); });
bash-3.2$ phantomjs render.js Error: [$injector:modulerr] Failed to instantiate module gmuApp due to: [$injector:nomod] Module 'gmuApp' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
Отредактировано vic57 (Фев. 22, 2017 10:44:48)
Офлайн
получилось через браузер - сохранить как PDF и через PDF to Text
но в общем-то костыль
Прикреплённый файлы:
info.txt (3,1 KБ)
Офлайн
в обчем получилось так:
from selenium import webdriver driver = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver') url = 'http://bus.gov.ru/pub/agency/8968/tasks/3472492' driver.get(url) html = driver.page_source f = open("f.html","w+") for i in html: f.write(i.encode("utf-8")) f.close()
Офлайн
vic57
Ну спасибо огромное. Хоть что - то сдвинулось с мертвой точки
Сам сижу разбираюсь с selenium.
В общем пока получилось что хотел вот так (предварительно):
from selenium import webdriver from bs4 import BeautifulSoup as BS def get_page_html(url): driver = webdriver.Firefox()#Движок в коде с проектом, по этому путь не указан driver.get(url) html = driver.page_source driver.quit() return html def pars(html): soup = BS(html, 'lxml') return soup.find('div', class_='info-date ng-binding ng-scope').text.strip() def main(urls): for url in urls: print(pars(get_page_html(url))) if __name__ == '__main__': main(['http://bus.gov.ru/pub/agency/8968/tasks/3472492', 'http://bus.gov.ru/pub/agency/8968/plans', 'http://bus.gov.ru/pub/agency/8968/operations/' ])
Офлайн