所以我正在尝试网页抓取此页面上的项目:
https://zkillboard.com/kill/44887120/overview/
其中一些相当容易,就像我想要丢弃的ISK数量一样,我只会使用:
dropped = soup.find("td", class_="item_dropped").get_text()
会导致:13,270,929,632.15 ISK
但是,我想要抓住其他一些值,但它们更棘手。
假设我想抓住受害者的名字,在这种情况下它是DwarfMaster
如果我查看网站的源代码,请列在:<a href="/character/1248683700/">
问题在于这些页面的受害者并不总是1248683700
而且不仅如此,页面上还有其他/字符/数字代表我不想刮的不同字符,尽管他们都处于相同的位置。有没有比仅仅抓取每个<a>
代码并调用第X个位置/character/
信息然后使用该字符搜索代码更好的方法?听起来真的很草率。然后在页面上还有另一个棘手的问题,如果你在45 Involved
下方的右侧看,你可以看到玩家的船名,例如Silent Ivy
的船只是{{1但我能找到该值的唯一方法是图像链接的内部,没有实际文本。在这种情况下:Nyx
如何抓取<img class="eveimage img-rounded" width="32" height="32" **alt="Nyx"** src="website.png"></img>
值?
答案 0 :(得分:1)
您是否认为所有这些页面都修复了您要查找的标记的位置?
E.g。那个&#34;受害者的名字&#34;始终可以在第一个表中第一个表的第一个表行的第一个锚点下访问:
name = soup.table.table.tr.a.get('title')
至于获取该船的名称,请访问该alt
标记的img
属性:
import re
shipname = soup.find_all('tr', class_="attacker")[0].find_all('a', href=re.compile('/ship/'))[0].img.get('alt')
我使用了一些绕道来访问该元素,但这应该让您了解如何访问这些属性。