漂亮的汤叫了两次汤(.text)

2024-05-16 01:57:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在过滤一个包含一个表的网页内容,我用粗体文本解析该行,然后在那里得到a标记。你知道吗

response = urllib2.urlopen("https://wiki.guildwars.com/wiki/Weekly_activities")
data = response.read()
soup = BeautifulSoup(data, 'html.parser')
dailiesunsorted = soup.findAll('tr', style="font-weight: bold;")
pvebonus = dailiesunsorted[0].findAll('a')[0]
pvpbonus = dailiesunsorted[0].findAll('a')[1]
nickitem = dailiesunsorted[0].findAll('a')[2]
nicklocation = dailiesunsorted[0].findAll('a')[3]
nickmap = dailiesunsorted[0].findAll('a')[4]

#not working when adding this line, but the line does what I want it to
nickcount = nickitem = dailiesunsorted[0].findAll('a')[2].next_sibling

pvebonus = "["+pvebonus.text+"](https://wiki.guildwars.com"+quote(pvebonus['href'])+")"
pvpbonus = "["+pvpbonus.text+"](https://wiki.guildwars.com"+quote(pvpbonus['href'])+")"
nickitem = "["+nickitem.text+"](https://wiki.guildwars.com"+quote(nickitem['href'])+")"
nicklocation = "["+nicklocation.text+"](https://wiki.guildwars.com"+quote(nicklocation['href'])+")"
nickmap = "["+nickmap.text+"](https://wiki.guildwars.com"+quote(nickmap['href'])+")"
return pvebonus, pvpbonus, nickitem, nicklocation, nickmap, nickcount.strip()

代码运行得很好,并且做了它应该做的事情,直到我添加了注释行。 现在我得到这个错误:

  File "/home/jens/gelbbot/gwhttp.py", line 42, in weeklies
  nickitem = "["+nickitem.text+"](https://wiki.guildwars.com"+quote(nickitem['href'])+")"
  File "/usr/lib/python3.6/site-packages/bs4/element.py", line 737, in 
  __getattr__
  self.__class__.__name__, attr))
  AttributeError: 'NavigableString' object has no attribute 'text'

似乎我不能用findAll('a')[2]两次,但如何解决这个问题呢。copy()不起作用


Tags: texthttpscomwikilinequotehreffindall
1条回答
网友
1楼 · 发布于 2024-05-16 01:57:36

这是一个语法错误。你知道吗

nickcount = nickitem = dailiesunsorted[0].findAll('a')[2].next_sibling

应该是

nickcount = dailiesunsorted[0].findAll('a')[2].next_sibling

或者

nickitem = dailiesunsorted[0].findAll('a')[2].next_sibling

相关问题 更多 >