gpt4 book ai didi

python - 如何使用请求库将 key 发送到 Python 中的网页?

转载 作者:太空宇宙 更新时间:2023-11-04 01:57:27 25 4
gpt4 key购买 nike

我有一个网站 https://www.icsi.in/student/Members/MemberSearch.aspx访问时,我必须将“CP 编号”输入为 16803,然后点击搜索。学生信息显示后,我需要抓取。有人可以帮助如何将“CP 编号”传递给请求以及如何使用请求按“搜索”按钮。

到目前为止,我已经尝试在 request.get() 方法的 param 标记中使用类名和 ID 名。

import requests
r=requests.get('https://www.icsi.in/student/Members/MemberSearch.aspx',params={'dnn_ctr410_MemberSearch_txtCpNumber':16803})

在上面的代码中,我尝试使用参数名称作为:[类名&id名]

dnn$ctr410$MemberSearch$txtCpNumber

dnn_ctr410_MemberSearch_txtCpNumber

我不知道如何工作,我不能使用 selenium 或图书馆之类的机制,有人可以帮助我吗。

最佳答案

website提交按钮渲染 js或ajax请求。您应该尝试自动化 selenium 库。它允许您抓取动态呈现请求(js或ajax)页面数据。

from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

browser = webdriver.Chrome('/usr/bin/chromedriver')
browser.get('https://www.icsi.in/student/Members/MemberSearch.aspx')

reg = browser.find_element_by_name('dnn$ctr410$MemberSearch$txtCpNumber')
reg.send_keys('16803')

sub = browser.find_element_by_class_name('dnnPrimaryAction')
sub.click()

WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.CLASS_NAME, "rgMasterTable")))

soup = BeautifulSoup(browser.page_source, 'lxml')
table = soup.find("table",{'class':"rgMasterTable"}).find("tr",{'class':"rgRow"})

data = {}
for div in table.find_all("div",{'class':"chart_att"}):
for div2 in div.find_all("div"):
_class = div2.get("class")

if "chart_row" in _class[0]:
key = None
value = None
for td in div2.find_all("td"):
_class1 = td.get("class")

if "chart_head" in _class1[0]:
key = td.text.strip()
else:
value = td.text.strip()
if key is not None and value is not None:
data[key] = value

print(data)

O/P:

{'Organization': 'RAHUL SHINDE AND COMPANY', 'Designation': 'COMPANY SECRETARIES (*)', 'Membership Number': 'A32412', 'CP Number': '16803', 'Benevolent Member': 'No', 'Address': '25/26, 3RD FLOOR, PAREERA BUILDING NAVJEEVAN WADI, KALBADEVI POST DHOBI TALAV, MARINE LINES', 'City': 'MUMBAI', 'Phone': '', 'Email': 'jurisrahul@gmail.com', 'Mobile': '8369683685'}

其中 '/usr/bin/chromedriver' selenium 网络驱动程序路径。

为 chrome 浏览器下载 selenium web 驱动程序:

http://chromedriver.chromium.org/downloads

为 chrome 浏览器安装网络驱动程序:

https://christopher.su/2015/selenium-chromedriver-ubuntu/

Selenium 教程:

https://selenium-python.readthedocs.io/

关于python - 如何使用请求库将 key 发送到 Python 中的网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56481600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com