Amr*_*ngh 0 javascript python selenium beautifulsoup python-requests
目前,我使用 Selenium 从网站上的表格中提取文本。以下是代码:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
# Using Chrome to access web
browser = webdriver.Chrome(ChromeDriverManager().install())
# Open the website
browser.get('https://launchstudio.bluetooth.com/Listings/Search')
element = browser.find_element_by_id('searchButton').click()
table_text = browser.find_element_by_class_name('table').text
while len(table_text) < 80:
table_text = browser.find_element_by_class_name('table').text
print(table_text)
browser.close()
Run Code Online (Sandbox Code Playgroud)
但是,我正在尝试找到一种方法对请求/美丽汤或任何其他库执行相同的操作,我可以将其安排为 Windows 中的任务,并每隔 x 间隔将结果存储在表中。显然,因为我希望所有这些都在后台发生,然后触发通知等。
我想要的是 - 打开这个网站,点击搜索按钮(或触发相应的 javascript),然后将表格导出为 Dataframe 或其他任何内容。
你能在这里指导我吗?
提前致谢!!
如果你去,Network Tab
你会得到API
. 您可以使用此发布请求来获取所有值。使用最大结果字段您也可以限制结果。
https://platformapi.bluetooth.com/api/platform/Listings/Search
import requests
import pandas as pd
data={
"searchString" : "",
"searchQualificationsAndDesigns": True,
"searchDeclarationOnly": True,
"bqaApprovalStatusId" : -1,
"bqaLockStatusId" : -1,
"layers" : [],
"listingDateEarliest" : "",
"listingDateLatest" : "",
"maxResults": 5000,
"memberId": "",
"productTypeId" : 0,
"searchDeclarationOnly" : True,
"searchEndProductList" : False,
"searchMyCompany" : False,
"searchPRDProductList" : True,
"searchQualificationsAndDesigns" : True,
"searchString" : "",
"specName": 0,
"userId" : 0
}
headers = {'User-Agent':
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36'}
url="https://platformapi.bluetooth.com/api/platform/Listings/Search"
response=requests.post(url,headers=headers,data=data).json()
df=pd.DataFrame(response)
print(df)
Run Code Online (Sandbox Code Playgroud)
您可以导入到 csv 文件。
df.to_csv("testresult.csv")
Run Code Online (Sandbox Code Playgroud)