我正在尝试从网站上抓取一些信息。我需要 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>')
前五个字段结果正确,但地址、电话和传真的后三个字段总是返回空。谁能指出我错过了什么?或者最后三个字段的正则表达式有什么问题。我已经发布了一个较早的 [1][question],但是这些问题后来才出现,所以我在另一个问题中问它。