私はウェブページ上のリストを引っ張り、それらのコンテキストを与えるために、それらの直前のテキストも引き出します。 <ul>
または<ol>
タグの前のタグをプルするのが最善の方法です。それでは、私はこのリストを持っているとしましょう:BeautifulSoup:別のタグに先行するタグを引き出す
私は弾丸と単語「新世紀世代を」プルにしたいと思います。私はBeautifulSoup機能を使用します。
#pull <ul> tags
def pull_ul(tag):
return tag.name == 'ul' and tag.li and not tag.attrs and not tag.li.attrs and not tag.a
ul_tags = webpage.find_all(pull_ul)
#find text immediately preceding any <ul> tag and append to <ul> tag
ul_with_context = [str(ul.previous_sibling) + str(ul) for ul in ul_tags]
私はul_with_contextを印刷し、私は次を得る:
['\n<ul>\n<li>With immigration adding more numbers to its group than any other, the Millennial population is projected to peak in 2036 at 81.1 million. Thereafter the oldest Millennial will be at least 56 years of age and mortality is projected to outweigh net immigration. By 2050 there will be a projected 79.2 million Millennials.</li>\n</ul>']
あなたが見ることができるように、 "新世紀世代は" 引っ張られていませんでした。私はから引っ張ってるページはこちらhttp://www.pewresearch.org/fact-tank/2016/04/25/millennials-overtake-baby-boomers/ ある弾丸のためのコードのセクションです:
<p>
と<ul>
タグは兄弟です。なぜそれが単語"Millennials"のタグを引っ張っていないのか?
、方法をfindPrevious()ではなくfind_previous()です。 –