使用 BeautifulSoup 到 return 属性
Use BeautifulSoup to return attribute
我正在尝试获取元素的属性,但我得到了该元素的 None
这是我的代码
import requests
from bs4 import BeautifulSoup as bs
res = requests.get('https://services.paci.gov.kw/card/inquiry?lang=ar&serviceType=2')
#print(res.text)
with open('Output.txt', 'w') as f:
f.write(str(res.text))
soup = bs(res.text, 'html.parser')
vToken = soup.find('input', attrs={'name': '__RequestVerificationToken'}, first=True)
print(vToken)
print(vToken['value'])
我检查了 Output.txt 文件,发现该属性已实现但无法获取其属性
添加 headers
就可以了:
import requests
from bs4 import BeautifulSoup as bs
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:98.0) Gecko/20100101 Firefox/98.0",
}
url = 'https://services.paci.gov.kw/card/inquiry?lang=ar&serviceType=2'
soup = bs(requests.get(url, headers=headers).text, 'html.parser')
vToken = soup.find('input', attrs={'name': '__RequestVerificationToken'})
print(vToken['value'])
输出:
CfDJ8KYexE-JuUdFv8XKqnZO6wgPM1_Pmaf96y1YdvqHY2mJLJtbNiU0p4tU3xVQSudgrpBxQmINXC8dopZp6NEb3rl-GRhpmSfDrUwn8_uGnNKB6u7cHDNNNIXo-bGEH0gNz6nq4IIWfIgdDqQxl47E6vQ
跳过 find()
中的 first=True
参数,它会抛出:
TypeError: 'NoneType' object is not subscriptable
示例:
import requests
from bs4 import BeautifulSoup as bs
res = requests.get('https://services.paci.gov.kw/card/inquiry?lang=ar&serviceType=2')
soup = bs(res.text, 'html.parser')
vToken = soup.find('input', attrs={'name': '__RequestVerificationToken'})
print(vToken['value'])
输出:
CfDJ8Jg8_Y_lKLtGsMsCG9ry3AgPF3n0c5Zc7jzzJ0hYmIv2my6IqtFlABkZLpwb3f9JfCP3-Yhr_P4bvwp_jyw47G6MTcAAUx9ZBE82oSQ4tpSrJxS4vxtJj6LPZ2vaLwGDgiYitq3qYiJmNZvsg_FHOj0
我正在尝试获取元素的属性,但我得到了该元素的 None 这是我的代码
import requests
from bs4 import BeautifulSoup as bs
res = requests.get('https://services.paci.gov.kw/card/inquiry?lang=ar&serviceType=2')
#print(res.text)
with open('Output.txt', 'w') as f:
f.write(str(res.text))
soup = bs(res.text, 'html.parser')
vToken = soup.find('input', attrs={'name': '__RequestVerificationToken'}, first=True)
print(vToken)
print(vToken['value'])
我检查了 Output.txt 文件,发现该属性已实现但无法获取其属性
添加 headers
就可以了:
import requests
from bs4 import BeautifulSoup as bs
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:98.0) Gecko/20100101 Firefox/98.0",
}
url = 'https://services.paci.gov.kw/card/inquiry?lang=ar&serviceType=2'
soup = bs(requests.get(url, headers=headers).text, 'html.parser')
vToken = soup.find('input', attrs={'name': '__RequestVerificationToken'})
print(vToken['value'])
输出:
CfDJ8KYexE-JuUdFv8XKqnZO6wgPM1_Pmaf96y1YdvqHY2mJLJtbNiU0p4tU3xVQSudgrpBxQmINXC8dopZp6NEb3rl-GRhpmSfDrUwn8_uGnNKB6u7cHDNNNIXo-bGEH0gNz6nq4IIWfIgdDqQxl47E6vQ
跳过 find()
中的 first=True
参数,它会抛出:
TypeError: 'NoneType' object is not subscriptable
示例:
import requests
from bs4 import BeautifulSoup as bs
res = requests.get('https://services.paci.gov.kw/card/inquiry?lang=ar&serviceType=2')
soup = bs(res.text, 'html.parser')
vToken = soup.find('input', attrs={'name': '__RequestVerificationToken'})
print(vToken['value'])
输出:
CfDJ8Jg8_Y_lKLtGsMsCG9ry3AgPF3n0c5Zc7jzzJ0hYmIv2my6IqtFlABkZLpwb3f9JfCP3-Yhr_P4bvwp_jyw47G6MTcAAUx9ZBE82oSQ4tpSrJxS4vxtJj6LPZ2vaLwGDgiYitq3qYiJmNZvsg_FHOj0