我有以下代码(在回答其他问题时提供给我。它与我的原始代码具有相同的作用,只是更干净)。
'''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获取所需的信息?任何指导都会有所帮助。