【发布时间】:2018-03-11 16:42:04
【问题描述】:
我正在过滤一个包含表格的网页内容,我用粗体文本解析行,然后在那里获取 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() 不起作用
【问题讨论】:
标签: python beautifulsoup urllib2 python-3.6