python - 两个相同的链接在从中解析用户名时表现不同
问题描述
我在 python 中创建了一个脚本来从网页中获取用户名。我使用了两个相同的链接来查看脚本的行为方式。该脚本可以解析第一个链接的用户名,但在转到第二个链接时失败,因此它会抛出AttributeError
.
我试过:
import requests
from bs4 import BeautifulSoup
links = (
"https://twitter.com/fabogeek",
"https://twitter.com/radio702"
)
for link in links:
res = requests.get(link,headers={"User-Agent":"Mozilla/5.0"})
soup = BeautifulSoup(res.text,"lxml")
username = soup.select_one("div[dir='ltr']:contains('@') > span").text
print(username)
电流输出:
@Jeezy
AttributeError
预期输出:
@Jeezy
@Radio702
如何使用请求从第二个链接获取用户名?
解决方案
修复。你select_one()
没有得到第二个链接,所以它正在返回None
。
import requests
from bs4 import BeautifulSoup
links = (
"https://twitter.com/fabogeek",
"https://twitter.com/radio702"
)
for link in links:
res = requests.get(link,headers={"User-Agent":"Mozilla/5.0"})
soup = BeautifulSoup(res.text,"lxml")
username = soup.find("b", {'class':'u-linkComplex-target'}).text
print(username)
出[1]:
FaboGeek
Radio702