如何使用html“查找属性”;“隐藏的”;使用beautifulsoup python进行输入
我能够获得具有典型数据的元素:如何使用html“查找属性”;“隐藏的”;使用beautifulsoup python进行输入,python,beautifulsoup,Python,Beautifulsoup,我能够获得具有典型数据的元素: <input id="mbb-offeringID-1" type="checkbox" name="offeringID.1" value="cLtX5MPovjIvCLvcPPMSjATUpzLHNW%2Bk9pGa3%2BTkldS92roGTDDM%2B8BvfXGJP5GWE3DNQLNkJUny6cgknOlP%2F3xEODHJiPzzb3Io7oXbgDNP9cSrVkoa
<input id="mbb-offeringID-1" type="checkbox" name="offeringID.1" value="cLtX5MPovjIvCLvcPPMSjATUpzLHNW%2Bk9pGa3%2BTkldS92roGTDDM%2B8BvfXGJP5GWE3DNQLNkJUny6cgknOlP%2F3xEODHJiPzzb3Io7oXbgDNP9cSrVkoaA5JVvTc1IPb%2BEcbB%2BeqhE7BAczO81wFLlD3SbtD55y7hOIa5DYQLzkaI9FHJTuyAphRUriSbCRuS">
如何使用隐藏输入检索值,例如:
<input type="hidden" name="offeringID.1" value="9Lt1oDtQ%2BIAdndBuUQBzl%2FXSUE8quGoqB41HEfz9IncLO4u3HybZ3EWtylW8vTJ1v3KZOS%2FPQRFGN6L0a0pjYFd8KcQ%2Bok3AsTNXxrQUaar1gXa7EHhACX2c%2Bh72E3izLUOwM4q6Wxw%3D">
这是完整的html
<div class="a-fixed-right-grid-col aod-atc-column a-col-right" style="width:150px;margin-right:-150px;float:left;">
<form method="post" action="/gp/add-to-cart/html/ref=aod_dpdsk_new_0" class="aod-atc-form-header-desktop a-spacing-none">
<input type="hidden" name="session-id" value="146-6039598-0678601">
<input type="hidden" name="offeringID.1" value="9Lt1oDtQ%2BIAdndBuUQBzl%2FXSUE8quGoqB41HEfz9IncLO4u3HybZ3EWtylW8vTJ1v3KZOS%2FPQRFGN6L0a0pjYFd8KcQ%2Bok3AsTNXxrQUaar1gXa7EHhACX2c%2Bh72E3izLUOwM4q6Wxw%3D">
你可以这样做
from bs4 import BeautifulSoup
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.content, "lxml")
hidden_tags = soup.find_all("input", type="hidden")
for tag in hidden_tags:
print(tag )
你能做到的
from bs4 import BeautifulSoup
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.content, "lxml")
hidden_tags = soup.find_all("input", type="hidden")
for tag in hidden_tags:
print(tag )
由于您还希望将
“name=offeringID.1”
作为关键字参数传递给find_all()
,而我在回答中没有提到它,因此我标记为重复。我会在这里发布一个解决方案。您可以添加attrs=
参数:
for tag in soup.find_all("input", type="hidden", attrs={"name": "offeringID.1"}):
print(tag["value"])
编辑:数据通过Ajax从外部加载,您得到的“值”如下:
import requests
from bs4 import BeautifulSoup
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36",
"referer": "https://www.amazon.ca/gp/aod/ajax/ref=auto_load_aod?asin=B07RF237B1&pc=dp",
}
params = (
("asin", "B07RF237B1"),
("pc", "dp"),
)
response = requests.get(
"https://www.amazon.ca/gp/aod/ajax/ref=auto_load_aod",
headers=headers,
params=params,
)
soup = BeautifulSoup(response.content, "html.parser")
print(soup.find("input", type="hidden", attrs={"name": "offeringID.1"})["value"])
由于您还希望将
“name=offeringID.1”
作为关键字参数传递给find_all()
,而我在回答中没有提到它,因此我标记为重复。我会在这里发布一个解决方案。您可以添加attrs=
参数:
for tag in soup.find_all("input", type="hidden", attrs={"name": "offeringID.1"}):
print(tag["value"])
编辑:数据通过Ajax从外部加载,您得到的“值”如下:
import requests
from bs4 import BeautifulSoup
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36",
"referer": "https://www.amazon.ca/gp/aod/ajax/ref=auto_load_aod?asin=B07RF237B1&pc=dp",
}
params = (
("asin", "B07RF237B1"),
("pc", "dp"),
)
response = requests.get(
"https://www.amazon.ca/gp/aod/ajax/ref=auto_load_aod",
headers=headers,
params=params,
)
soup = BeautifulSoup(response.content, "html.parser")
print(soup.find("input", type="hidden", attrs={"name": "offeringID.1"})["value"])
这回答了你的问题吗?谢谢,我如何将“name=offeringID,1”传递给它并检索值。它打印的不是我反关联的内容。我在这里发布了一个答案,只是稍微修改了标记的答案,因为你想添加另一个关键字。这个答案回答了你的问题吗?谢谢,我如何将“name=offeringID,1”传递给它并检索值。它打印的不是我反关联的内容。我在这里发布了一个答案,但对标记的答案稍作修改,因为您想添加另一个关键字ArgumentThank,我如何向其中传递“name=offeringID,1”并检索值Thank,我如何传递“name=offeringID,1”我尝试了这个,它给了我和以前一样的输出。@ShiO你能分享URL和预期的输出吗,我正在尝试获得官方的amazon offerid输出,这应该是第一个输出,usually@ShiO我不确定预期的输出是什么。什么是“offerid”?谢谢,非常感谢。我会对ajax做更多的研究。我尝试了这个,它给了我和以前一样的输出。@ShiO你能分享URL和预期输出吗,我正在尝试获得官方的amazon offerid输出,这应该是第一个输出,usually@ShiO我不确定预期的输出是什么。什么是“offerid”?谢谢,非常感谢。我将对ajax做更多的研究。