Web サイトから情報をスクレイピングしようとしています。8 つのフィールドの情報が必要です。5 つのフィールドの情報を取得しましたが、3 つのフィールドは常に空になります。正規表現の定式化に誤りがあると思います。私はPythonでそれをやっています.BSを使う必要はありません。スクレイピングする必要がある HTML ファイルは次のとおりです。これはウェブページの一例です。
enter code here
<td><span class="facultyName">John Matthew Falletta, MD</span>
<span class="primaryTitle">Professor of Pediatrics</span>
<span class="secondaryTitle">Professor in the School of Nursing</span>
<td><span class="label">Department:</span>
</td><td>Pediatrics</td>
<td><span class="label">Division:</span>
</td><td>Hematology/Oncology</td>
<td><span class="label">Address:</span></td><td>Box 2991<br>DUMC<br>Durham, NC 27710 </td>
<td><span class="label">Phone:</span></td><td>
(919)
668-5111<br>
<td><span class="label">FAX:</span></td><td>
(919)
688-5125</td>
タグの各タイプのそれぞれの正規表現を含む私のコードは次のとおりです。
enter code here
patFinderFullname = re.compile('<span class="facultyName">(.*)</span>')
patFinderPTitle = re.compile('<span class="primaryTitle">(.*)</span>')
patFinderSTitle = re.compile('<span class="secondaryTitle">(.*)</span>')
patFinderDepartment = re.compile('<span class="label">Department:</span>\s+ \s+</td><td>(.*)</td>')
patFinderDivision = re.compile('<span class="label">Division:</span>\s+ \s+</td><td>(.*)')
patFinderAddress = re.compile(' <span class="label">Address:</span>\s+(.*)\s+</td>')
patFinderPhone = re.compile('<span class="label">Phone:</span></td><td>\s*(.*?)\s*<br>')
patFinderFax = re.compile('<td><span class="label">FAX:</span>\s+</td><td>\s+(.*)</td>')
最初の 5 つのフィールドの結果は正しく表示されますが、住所、電話、ファックスの最後の 3 つのフィールドは常に空になります。誰かが私が欠けているものを指摘できますか? または、最後の 3 つのフィールドの正規表現のどこが悪いのでしょうか。以前[1][質問]を投稿しましたが、これらの問題はその後に届いたので、別の質問で質問しています。