2016-12-17 12 views
0

Webページを削っています。re.compile()が渡されたテキストがある間に空[]を返す部分を除いて、かなりうまくいきました。ここに私の掻き取りコードがBeautifulSoupは、文字列が存在するときに[]を返します。

dob = soup.find(text = re.compile('Date of Birth')).findNext('td').text 
print(dob) 

father_name = soup.find(text = re.compile("Father's Name")).findNext('td').text 
print(father_name) 

mob_no_parent = soup.find(text = re.compile("Mobile Number")).findNext('td').text 
print(mob_no_parent) 

mob_no_student = soup.findAll(text = re.compile("Mobile Number(Student)")) 
print(mob_no_student) 

email = soup.find(text = re.compile("E - Mail Address")).findNext('td').text 
print(email) 

p_address = soup.find(text = re.compile("PermanentAddress")).findNext('td').text 
print(p_address) 

で上記のコードは

mob_no_student = soup.findAll(text = re.compile("Mobile Number(Student)")) 
print(mob_no_student) 

を除くすべてのテキストに正常に動作します上記の一つはここに[]

を返す私のhtmlコードは

<td align="left" width="50%" class="inner_padding_even">&nbsp;&nbsp;Registration No </td> 
<td align="left" width="50%" class="inner_padding_even">CPT0000</td> 
</tr> 
<tr> 
<td align="left" width="50%" class="inner_padding_odd">&nbsp;&nbsp;Name of Candidate</td> 
<td align="left" width="50%" class="inner_padding_odd"><font face=arial size=2>KKKKKKK B.</font></td> 
</tr> 
<tr> 
<td align="left" class="inner_padding_even">&nbsp;&nbsp;Date of Birth</td> 
<td align="left" class="inner_padding_even">16.11.1900</td> 
</tr> 
<tr> 
<td align="left" class="inner_padding_even">&nbsp;&nbsp;Father's Name</td> 
<td align="left" class="inner_padding_even">BBBBBBBB.</td> 
</tr> 
<tr> 
<td align="left" class="inner_padding_even">&nbsp;&nbsp;Mobile Number</font>(Parent)</td> 
<td align="left" class="inner_padding_even">99999999999</td> 
</tr> 
<tr> 
<td align="left" class="inner_padding_odd">&nbsp;&nbsp;Mobile Number(Student)</td> 
<td align="left" class="inner_padding_odd">9999999999</td> 

</tr> 
<tr> 
<td align="left" class="inner_padding_even">&nbsp;&nbsp;E - Mail Address</td> 
<td align="left" class="inner_padding_even">[email protected]</td> 
</tr> 
<tr> 
<td width="50%" align="left" class="inner_padding_even">&nbsp;Permanent Address</td> 
<td width="50%" align="left" class="inner_padding_even">Blah blah</td> 
</tr> 

です私はここで何が欠けていますか?ではない、それはこの

mob_no_student = soup.findAll(text = re.compile("Mobile Number\(Student\)")) 

答えて

2

は、あなたは...、括弧をエスケープする必要があります。大括弧ももちろんエスケープする必要がありますが、これらは括弧で囲まれています。
+0

偉大な答えをしてみグループ

を参照する場合、それらは括弧括弧ではありません除いて正規表現で – tdelaney

+0

これはうまくいく!ありがとうございました –

関連する問題