Невозможно получить некоторые элементы, используя почтовый запрос - PullRequest
0 голосов
/ 17 сентября 2018

Я написал скрипт на python, чтобы получить список материалов курса с веб-сайта. Чтобы раскрыть материалы курса, необходимо заполнить поле inputs, которое можно найти. Если вы отслеживаете ссылку Find Textbooks с ее целевой страницы, как это видно на изображении 1.

Однако, когда вы заполняете поля ввода соответственно, материалы курса будут обнаружены (то, как я это сделал, видно на втором рисунке).

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

Ссылка на целевую страницу

Это моя попытка:

import requests
from bs4 import BeautifulSoup

url = "https://uncg.bncollege.com/webapp/wcs/stores/servlet/BNCBTBListView"

payload = {
    'storeId':'19069',
    'catalogId':'10001',
    'langId':'-1',
    'clearAll':'', 
    'viewName':'TBWizardView',
    'secCatList':'', 
    'removeSectionId':'', 
    'mcEnabled':'N',
    'showCampus':False,
    'selectTerm':'Select Term',
    'selectDepartment':'Select Department',
    'selectSection':'Select Section',
    'selectCourse':'Select Course',
    'campus1':'17548065',
    'firstTermName_17548065':'Fall 2018',
    'firstTermId_17548065':'84599238',
    'section_1': '85441456',
    'section_2':'', 
    'section_3':'',
    'section_4':'', 
    'numberOfCourseAlready':'4'
}

with requests.Session() as s:
    s.headers={"User-Agent":"Mozilla/5.0"}
    res = s.post(url,data=payload)
    soup = BeautifulSoup(res.text,"lxml")
    for items in soup.select("#skipNavigationToThisElement a"):
        print(items.text)

Любая помощь в устранении проблемы будет высоко оценена.

Изображение одно enter image description here

Изображение два

enter image description here

1 Ответ

0 голосов
/ 18 сентября 2018

использовать селен для извлечения динамических сайтов, а затем получить текст ответа этого сайта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...