Python 属性错误:';非类型';对象没有属性';获取文本';使用输入id

Python 属性错误:';非类型';对象没有属性';获取文本';使用输入id,python,beautifulsoup,request,Python,Beautifulsoup,Request,我还尝试: url = 'https://www.amazon.ca/Powerextra-Replacement-Battery-Compatible-NP-FZ100/dp/B07PQQQ82K/ref=bmx_4?pd_rd_w=TNcoX&pf_rd_p=d9347c84-a27a-4c22-b959-7bb71382273b&pf_rd_r=E7RKN5D6HSM4TFZQJCGT&pd_rd_r=e8bff283-bc96-4b77-b31a-f413b4d6

我还尝试:

url = 'https://www.amazon.ca/Powerextra-Replacement-Battery-Compatible-NP-FZ100/dp/B07PQQQ82K/ref=bmx_4?pd_rd_w=TNcoX&pf_rd_p=d9347c84-a27a-4c22-b959-7bb71382273b&pf_rd_r=E7RKN5D6HSM4TFZQJCGT&pd_rd_r=e8bff283-bc96-4b77-b31a-f413b4d62e40&pd_rd_wg=wje3Z&pd_rd_i=B07PQQQ82K&psc=1'
headers = 'headers = { "user-Agent": 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36'}'
page = requests.get(url, headers= headers)
soup = BeautifulSoup(page.content, "lxml")

title = soup.find('input', {'id': 'mbb-offeringID-1'}).get_text()
print(title)
然后我尝试了一下,如果它在一般情况下使用“span id”,它会给出相同的错误

title = soup.find('input', {'id': 'mbb-offeringID-1'}).get('value')
print(title)
尝试添加
“接受语言”:“en-US,en;q=0.5”
HTTP头以获得服务器的正确响应:

title = soup.find(id = "productTitle").get_text()
印刷品:

Asurion 3年保护计划14.99美元

看起来该ID不在由
请求检索的HTML中。您确定以后不会使用Javascript加载它吗<代码>打印(“汤中的mbb-offeringID-1”)#False
它打印为False yes,这意味着您要查找的元素在最初的
请求中不存在。get()
调用。这可能意味着在页面最初通过Javascript加载之后,Amazon会包含HTML内容,这意味着不可能使用此方法获取内容。您必须使用Selenium等框架模拟运行Javascript的浏览器。谢谢您的回复。Selenium非常好,只是用它切换代理不方便。嗨,又来了。我试图在request.get-before-soup=,它又给了我同样的错误。@ShiO确保你收到的是正常页面而不是验证码页面。对于代理网站来说,这是很常见的。再次感谢,代理似乎在引导我进入验证码页面。奇怪,这是住宅代理,我几乎不用。
import requests
from bs4 import BeautifulSoup


url = "https://www.amazon.ca/Powerextra-Replacement-Battery-Compatible-NP-FZ100/dp/B07PQQQ82K/ref=bmx_4?pd_rd_w=TNcoX&pf_rd_p=d9347c84-a27a-4c22-b959-7bb71382273b&pf_rd_r=E7RKN5D6HSM4TFZQJCGT&pd_rd_r=e8bff283-bc96-4b77-b31a-f413b4d62e40&pd_rd_wg=wje3Z&pd_rd_i=B07PQQQ82K&psc=1"
headers = headers = {
    "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0",
    "Accept-Language": "en-US,en;q=0.5",
}
page = requests.get(url, headers=headers)
soup = BeautifulSoup(page.content, "lxml")

title = (
    soup.find("input", {"id": "mbb-offeringID-1"})
    .find_next("span")
    .get_text(strip=True, separator=" ")
)
print(title)