我需要抓取嵌套在该HTML页面中的这部分文本。
int *p = (int*)0x100000;
*p = 0x7FFFF;
我以前使用过bs4,但我不知道如何以任何方式提取此特定文本。
答案 0 :(得分:0)
此页面对网页抓取不是很友好。我制作了一个函数get_text()
,它带有两个参数tag_from
和tag_to
。它将抓取这两个标签之间的所有文本:
from bs4 import BeautifulSoup, NavigableString
import requests
soup = BeautifulSoup(requests.get('http://warframe.wikia.com/wiki/Frost').text, 'lxml')
def get_text(tag_from, tag_to):
rv = ''
while True:
s = tag_from.next_sibling
if s == tag_to:
break
if isinstance(s, NavigableString):
rv += s
else:
rv += s.text
tag_from = tag_from.next_sibling
return rv.strip()
s = get_text(soup.select_one('#Acquisition').parent, soup.select_one('#Acquisition').parent.find_next('table'))
print(s)
打印:
Frost's component blueprints are acquired from Lieutenant Lech Kril & Captain Vor (Exta, Ceres).
编辑:
在此页面上,此文本不容易定位,没有封装它的标签。因此,我的方法是从一个标签开始,然后从我发现的所有内容中构建字符串,直到结束标签。
某些内容为NavigableString
(纯文本)类型,某些内容为其他标签(我从这些标签中获得了带有.text
属性的字符串)。