我正试着刮一个网页。在某些情况下,所有的数据都在那里,但是当用户“限定”时,它会返回一个400错误。我正在设法弄清楚如何判断这段文字是否是空的。
下面是HTML:
https://hastebin.com/abotejaquy.scala --正如你所看到的,大多数标签中都有文本("Silver“),但其中两个没有任何内容。
下面是我正在尝试的代码:
https://hastebin.com/xubibivara.py
它返回以下内容:
银III
银II
银IV
(符合资格的地方)
西尔弗一世
银III
银III
(符合资格的地方)
银V
银IV
-文字出现了,但排位赛没有出现.
谢谢
发布于 2017-08-10 18:53:38
我不确定您的特定问题,但是对于代码的第一稿来说,这是一条经验法则--如果有什么东西引起了异常,您可以只处理异常。铲运机尤其如此。
看看下面的代码:
从bs4导入BeautifulSoup导入请求
request = requests.get(url)
soup = BeautifulSoup(request.content, 'html.parser')
all_tags = list(soup.find_all('div', class_='profile-ranking-rank'))
kitname = list(soup.find_all('div', class_="profile-ranking-title"))
for tag in all_tags:
try:
print (tag.text)
except Exception:
print("Qualifying")更新
我不能重现这个异常,但看起来有些跨度中有空字符串。BS4处理它的方式是将.text作为空字符串,而不是None,因此在本例中应该检查字符串长度:
request = requests.get(url)
soup = BeautifulSoup(request.content, 'html.parser')
all_tags = list(soup.find_all('div', class_='profile-ranking-rank'))
kitname = list(soup.find_all('div', class_="profile-ranking-title"))
for tag in all_tags:
if len(tag.text) > 0:
print (tag.text)
else:
print("Qualifying")https://stackoverflow.com/questions/45621401
复制相似问题