我是网络剪贴的新手,不理解为什么我的代码不起作用^^' 无论我尝试在twitch中找到什么数据,汤.find()和汤.find_all()都会返回“无”或空数组,但是当我打印所有数据时,print(soup)就会起作用(&我确定该页面上存在我搜索的元素)。所以我不明白出了什么问题。.我在另一个项目中遇到了同样的问题,这是由于我的解析器“ html.parser”被我替换为“ lxml”而起作用了!但这不适用于这个。希望这是我的代码,您可以看到问题出处:)
from bs4 import BeautifulSoup
URL = 'https://www.twitch.tv'
headers = {
"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) 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")
#print(soup.prettify())
offline = soup.find('a', {'class':'side-nav-card__link'})
spans = soup.find_all('a')
for span in spans:
print(span)
print(offline)
PS:我知道可以使用抽搐API来完成相同的工作,但只是想练习网络抓取+如果您有其他网络抓取项目的想法可以随时建议他们^。^