(python)美化组语法,检索第一段
尝试以下代码似乎并没有按计划为我工作: 从beautifulsoup导入beautifulsoup(python)美化组语法,检索第一段,python,parsing,syntax,beautifulsoup,Python,Parsing,Syntax,Beautifulsoup,尝试以下代码似乎并没有按计划为我工作: 从beautifulsoup导入beautifulsoup definition = """From encyclopedia:\n<i></i><p>Infobox Country<br>fullcountryname=Thailand ราชอาณา&
definition = """From encyclopedia:\n<i></i><p>Infobox Country<br>fullcountryname=Thailand ราชอาณาจักรไทยRaja-anachakra Thai <br>image_flag= Flag of Thailand.svg <br>image_coa= Coat of arms of Thailand.png <br>image_location= LocationThailand.png <br>nationalmotto= none <br>nationalsong= Phleng Chat <br>nationalflower= n/a <br>nationalanimal= n/a <br>officiallanguages= Thai (<r><i>Thai language</i></r>) <br>populationtotal= 65,444,371 <br>populationrank= 19 <br>populationdensity= 127 <br>countrycapital= <r>Bangkok</r> <br>countrylargestcity= <r>Bangkok</r> <br>areatotal= 514,000 <br>arearank= 49 <br>areawater= n/a <br>areawaterpercent= 0.4 <br>establishedin= <r>April 7</r>, <r>1782</r> <br>leadertitlename= <br>currency= <r>Baht</r> <br>utcoffset= +7 <br>dialingcode= 66 <br>internettld= .th<p><b>Thailand</b> is a <r>country</r> in Southeast <r>Asia</r>. Its edges touch <r>Laos</r>, <r>Cambodia</r>, <r>Malaysia</r>, and <r>Myanmar</r> (which is also called Burma.) Thailand was called Siam until 1949."""
print BeautifulSoup(definition).find('p[1]').text
谢谢:)
编辑:我实际上更希望我能得到单词“Infobox”和最后一个标记之间的文本,这样我就可以使用脚本解析实时维基百科页面。只匹配第一个元素,所以只需使用find('p')
只匹配第一个元素,所以只需使用find('p')
您使用的是XPath语法,Beautiful Soup不支持这种语法。Lattyware的回答是正确的。至于编辑中的问题,您可以使用Beautiful Soup 4来大致获得您想要的内容。一些示例代码:
from bs4 import BeautifulSoup
soup = BeautifulSoup(definition)
import re
infobox_start = re.compile("^Infobox")
start_at = soup.find(text=infobox_start)
for string in start_at.parent.stripped_strings:
print string
您使用的是XPath语法,Beautiful Soup不支持这种语法。Lattyware的回答是正确的。至于编辑中的问题,您可以使用Beautiful Soup 4来大致获得您想要的内容。一些示例代码:
from bs4 import BeautifulSoup
soup = BeautifulSoup(definition)
import re
infobox_start = re.compile("^Infobox")
start_at = soup.find(text=infobox_start)
for string in start_at.parent.stripped_strings:
print string
如果您正在寻找的是Infobox,那么您可能会发现它为您提供了强大的编程功能和更稳定的数据访问。当然,WikipediaAPI和API也提供了这一点
这两种解决方案都有一个学习曲线,但可能比抓取更稳定,更尊重站点。如果您正在寻找的是信息框,您可能会发现它为您提供了强大的编程功能,并且更稳定地访问数据。当然,WikipediaAPI和API也提供了这一点 这两种解决方案都有一个学习曲线,但可能比刮擦更稳定、更尊重网站
from bs4 import BeautifulSoup
soup = BeautifulSoup(definition)
import re
infobox_start = re.compile("^Infobox")
start_at = soup.find(text=infobox_start)
for string in start_at.parent.stripped_strings:
print string