Loading...
Xzahn avatar Xzahn 34 Точки

Scrapping динамично генериран HTML с Python?

Здравейте, 

Пиша един скрипт, който трябва да автоматизира разни неща от работата ми. Трябва да минe през HTML-а на една страница, да извлече определена информация и да я напълни в един .xlsx файл. Сложното е, че страницата мога да я достъпя само от работния компютър и дори тогава трябва да си въведа логин информацията. След много главоблъсканица научках, че се използва NTLM протокол и успях да се свържа. Поне така си мисля, понеже request-а връща код 200. Проблемът е, че вместо html-a, който ми трябва, получавам 2000 реда от JS и други подобни благинки. Тоест получавам това, което се вижда като дам View Source в браузъра, а не мен ми трябва това, което се вижда като дам Inspect Element. Възможно ли е това и какво бъркам? 

import requests
import datetime
from bs4 import BeautifulSoup
from openpyxl import load_workbook
from openpyxl.drawing.image import Image
from openpyxl.styles import PatternFill
from requests_ntlm import HttpNtlmAuth

url = "http://top-secrect.com/"

# usern = input("User: ")
# usern = "DOMAIN\\" + usern
# print(usern)
# pass = input("Pass: ")

user_agent = {'User-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko'}

html = requests.get(url, headers=user_agent, auth=HttpNtlmAuth('DOMAIN\\pesho', 'peshoepich'))
print(html.status_code) # 200
print(html.text) # JS code


soup = BeautifulSoup(html.text, "html5lib")

 

Това е начина, по който достъпвам страницата. 

П.С. Не знам дали е от значение, но кода е писан с Python 3.5.2, а го изпълнявам от portable Python 2.7.12. 

1
Python 20/09/2016 09:34:10
dead4y avatar dead4y 62 Точки

Малко съм Late for the party, но разгледай https://addons.mozilla.org/en-US/firefox/addon/imacros-for-firefox/ . Представлява добавка за Firefox, която ти позволява да автоматизираш браузъра.

1
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.