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 HttpNtlmAuthurl = "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.
Изглежда точно това. Големи благодарности!