Web-Scraping: имитация кнопки «Загрузить дополнительные результаты» AJAX-запрос без Selenium - PullRequest
0 голосов
/ 27 июня 2019

У меня есть следующий код (который был предоставлен мне в ответе на другой вопрос. Он делает то же самое, что и мой оригинальный код, он просто чище).

'''python
from bs4 import BeautifulSoup
import requests
import pandas as pd

url2 = 'https://www.map-testing.com/map-search/?start=3&searchOptions=AllResults'
urlh2 = requests.get(url2)

soup = BeautifulSoup(urlh2.text, 'html.parser')
results = soup.find_all('div', attrs= {'class' : 'search-result'})

jsonData = []

for row_obj in results:
    data = {}
    row = row_obj.find("div")

    #scrap Manufacturer
    manufacturer = row.find("div", string="Manufacturer")
    data['Manufacturer']  = manufacturer.find_next('div').text.strip()

    # scrap Model Name
    modelName = row.find("div", string="Model Name")
    data['Model Name'] = modelName.find_next('div').text.strip()

    # scrap Model Number
    modelNumber = row.find("div", string="Model Number")
    data['Model Number'] = modelNumber.find_next('div').text.strip()

    # scrap MaP Report No.
    maPReportNo = row.find("div", string="MaP Report No.")
    data['MaP Report No.'] = maPReportNo.find_next('div').text.strip()

    # scrap MaP Flush Score
    maPFlushScore = row.find("div", string="MaP Flush Score")
    data['MaP Flush Score'] = maPFlushScore.find_next('span').text.strip()

    # scrap Specifications
    specifications = row.find_all("li")
    data['Specifications'] = ",".join(i.text.strip() for i in specifications)

    jsonData.append(data)

df = pd.DataFrame(jsonData)

'''

Я пытаюсь собрать все данные с веб-сайта в коде и сохранить их в DataFrame, но сайт использует AJAX для загрузки необходимой мне дополнительной информации.

Единственное решение, которое я нашел, - использование Selenium, и я надеялся не использовать его, так как я хотел бы лучше понять, что мне нужно сделать, чтобы имитировать действия кнопки «Загрузить дополнительные результаты» на сайте.

Я просмотрел код на вкладке разработчика в Chrome, нашел вкладку XHR, в которой размещены все заголовки XHR, и точно определил, какой тип запроса используется.В чем я не уверен, так это в том, какой XHR дает мне информацию, которую я ищу, и как скопировать кнопку «Загрузить дополнительные результаты» для доступа к этой информации.Использую ли я POST или GET в этом случае, чтобы получить информацию, которую я ищу?Любое руководство поможет.

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