【发布时间】:2017-11-29 13:01:04
【问题描述】:
我有以下 HTML 脚本,我在其中搜索特定单词。
<tbody>
<tr>
<th>Berufsbezeichnung:</th>
<td class="gray">ExampleName</td>
</tr>
<tr>
<th>Anrede:</th>
<td class="gray">Herrn</td>
</tr>
<tr>
<th>Name:</th>
<td class="gray">ExampleLastName</td>
</tr>
<tr>
<th>Vorname:</th>
<td class="gray">ExampleSurname</td>
</tr>
…
</tbody>
我想要不同的变量“Berufsbezeichnung”、“Anrede”、...必须用正确的内容填充。在相同的数据集中,例如缺少“Berufsbezeichnung”,所以这个变量必须留空。
我尝试了一个搜索内容的scrapy脚本,但它不起作用:
soup = BeautifulSoup(response.css('table').extract()[0],'lxml')
for elem in soup.findAll('tr'):
for eleme in elem.findAll('th'):
if eleme.get_text()=='Berufsbezeichnung:':
Berufsbezeichnung = elem.css('td.gray::text')
if eleme.get_text()=='Anrede:':
Anrede = elem.css('td.gray::text')
...
有人有想法或者更简单的方法吗?
非常感谢!
【问题讨论】:
-
在开始时将默认值分配给
Berufsbezeichnung- 它可以是空字符串(或无)。如果它没有找到它,那么你将拥有这个带有空/默认字符串的变量。 -
你在使用
scrapy吗?如果是,你真的不需要 bsoup
标签: python html beautifulsoup scrapy