Python 使用BeautifulSoup查找字符串的值

Python 使用BeautifulSoup查找字符串的值,python,beautifulsoup,Python,Beautifulsoup,有html代码 </DIV> <CENTER><div id="div_errorh">#</div></CENTER> <table width="100%"> <tr> <td width="74%" style="vertical-align:top;"> <TABLE class="MainTable" CELLPADDING="3" CELLSPAC

有html代码

</DIV>
   <CENTER><div id="div_errorh">#</div></CENTER>
   <table width="100%">
   <tr>
    <td width="74%" style="vertical-align:top;">
     <TABLE class="MainTable" CELLPADDING="3" CELLSPACING="0">
     <TBODY id="MAIN_TABLE">
     <TR><TH></TH><TH></TH><TH></TH>
     <TR class=Row2><TD ALIGN=LEFT class="" >String_1</TD><TD ALIGN=RIGHT class="" >Value of line 1</TD><TD ALIGN=LEFT></TD></TR>
<TR class=Row1><TD ALIGN=LEFT class="" >String_2</TD><TD ALIGN=RIGHT class="" >Value_of_line_2</TD><TD ALIGN=LEFT></TD></TR>
<TR class=Row2><TD ALIGN=LEFT class="" >String_3</TD><TD ALIGN=RIGHT class="" >Value_of_line_3</TD><TD ALIGN=LEFT><B><A 
<TR class=Row1><TD ALIGN=LEFT class="" >String_4</TD><TD ALIGN=RIGHT class="" >Value_of_line_4</TD><TD ALIGN=LEFT><B><A 
<TR class=Row2><TD ALIGN=LEFT class="" >String_5</TD><TD ALIGN=RIGHT class="" >Value_of_line_5</TD><TD ALIGN=LEFT></TD></TR>
<TR class=Row1><TD ALIGN=LEFT class="" >&nbsp;</TD><TD ALIGN=LEFT class="" ></TD><TD ALIGN=LEFT></TD></TR>

#
字符串\u 1第1行的值
第2行的字符串值

第3行的字符串\u 3Value\u这将给出4和5的值,然后您可以检查是否有其他值:

from bs4 import BeautifulSoup
soup = BeautifulSoup(code, "html.parser")
a = soup.find_all('a')
for i in a:
    tds = i.find_all('td')
    print(tds[1].text)

我不知道你的HTML标签是否真的不完整。如果是,请尝试以下代码。在提取HTML标记之前,我完成了它

from simplified_scrapy import SimplifiedDoc
html = '''
 <TABLE class="MainTable" CELLPADDING="3" CELLSPACING="0">
     <TBODY id="MAIN_TABLE">
     <TR><TH></TH><TH></TH><TH></TH>
     <TR class=Row2><TD ALIGN=LEFT class="" >String_1</TD><TD ALIGN=RIGHT class="" >Value of line 1</TD><TD ALIGN=LEFT></TD></TR>
<TR class=Row1><TD ALIGN=LEFT class="" >String_2</TD><TD ALIGN=RIGHT class="" >Value_of_line_2</TD><TD ALIGN=LEFT></TD></TR>
<TR class=Row2><TD ALIGN=LEFT class="" >String_3</TD><TD ALIGN=RIGHT class="" >Value_of_line_3</TD><TD ALIGN=LEFT><B><A 
<TR class=Row1><TD ALIGN=LEFT class="" >String_4</TD><TD ALIGN=RIGHT class="" >Value_of_line_4</TD><TD ALIGN=LEFT><B><A 
<TR class=Row2><TD ALIGN=LEFT class="" >String_5</TD><TD ALIGN=RIGHT class="" >Value_of_line_5</TD><TD ALIGN=LEFT></TD></TR>
<TR class=Row1><TD ALIGN=LEFT class="" >&nbsp;</TD><TD ALIGN=LEFT class="" ></TD><TD ALIGN=LEFT></TD></TR>
</TBODY>
'''
doc = SimplifiedDoc(html)
doc['html'] = doc.replaceReg(doc.html,'</TH>\s*<TR','</TH></TR><TR')
doc['html'] = doc.replaceReg(doc.html,'<A\s*<TR','<A></TR><TR')
trs = doc.selects('TBODY#MAIN_TABLE>TR') 
value = trs[5].TDs[1].text
print (value)

“我需要找出第5行的值”这是什么意思?你到底想提取什么价值?你面对什么样的范围?请从开始,我需要从站点查找信息没有发生任何事情我从变量获取HTML,并使用此代码提取所有字符串及其值:``main_text=page soup=beautifulsou(main_text,'lxml')MainTable=soup.find('table',{'class':'MainTable')tr=MainTable.find('MainTable'>'tr:nth child(5)\\ soup.find#all('tr',{'class':'Row2'},{'align=“RIGHT”})tr=tr.text print(tr)``问题是,无论我如何编辑它,结果都只能找到所有的行和所有的值​​在这些行中…可能是因为您的html标签不完整。这段代码可以工作,但它在其中创建了spider.log文件、db目录和config.db文件。这可以关闭吗?抱歉,我还不知道。我会查找它。因为这是一个爬虫框架,数据提取只是其中的一部分。谢谢,我将等待您的回复Y
Value_of_line_5