爬取易查分成绩单
前期准本,下载webdriver,可以下载火绒,edge,chorm等的webdrive
然后,就是获取driver,用的什么浏览器就用xxOptions,比如ChormOptions,FirefoxOptions还有下图的options,用的什么浏览器,就要把浏览器做想应得更改即可
url_survey = ("你的网站") # 根据需要填写url
# 防止被浏览器识别为脚本
option = webdriver.EdgeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
option.add_experimental_option('useAutomationExtension', False)
driver = webdriver.Edge(options=option)
driver.set_window_size(700, 500)
driver.set_window_position(x=500, y=80)
driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument',
{'source': 'Object.defineProperty(navigator, "webdriver", {get: () => undefined})'})
# 这行代码的作用是将webdriver这个属性置为undefined
然后是根据你网站需要输入得元素,传入
在浏览器中打开开发者模式,传入完整得Xpath
driver.find_element(By.XPATH,f'/html/body/div/div[2]/div[4]/div/div[2]/form/table/tbody/tr[1]/td[2]/input').send_keys(id)
time.sleep(0.5)
driver.find_element(By.XPATH, f'/html/body/div/div[2]/div[4]/div/div[2]/form/table/tbody/tr[2]/td[2]/input').send_keys(name)
time.sleep(0.5)
driver.find_element(By.XPATH, f'/html/body/div/div[2]/div[4]/div/div[2]/form/table/tbody/tr[3]/td[2]/input').send_keys(class_id)
time.sleep(0.5)
# result_content > div.q-r-table-panel > table > tbody > tr:nth-child(2)
# 打印所有的字典
driver.find_element(By.CSS_SELECTOR,f'#yiDunSubmitBtn').click()
time.sleep(2)
然后从跳转后得页面读取出你需要得元素,这里需要什么元素就读取什么元素,如果不知道你要读取元素标签,就去看html
list = []
url2 = driver.current_url # 表示问卷填写完成后跳转的链接,一旦跳转说明填写成功
try:
table = driver.find_element(By.TAG_NAME, 'table')
# 找到表格行
rows = table.find_elements(By.TAG_NAME, 'tr')
# 遍历表格行
for row in rows:
# 遍历行中的单元格
cells = row.find_elements(By.TAG_NAME, 'td')
# print(cells)
for cell in cells:
# 提取单元格文本
text = cell.text.strip()
list.append(text)
except:
pass
if len(list)==0:
list=[0,0,0,0,0]
else:
list=list[:5]
return url2,list
然后就得到你需要得元素了,最后保存list即可