我有一张类似于下面的表格:
<table>
<thead>
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
<tr>
</thead>
<tbody>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
我需要每行的第二和第三行。我在Python 3.5中使用BeautifulSoup
现在,我正在做:
Table = Soup.find('table', attrs={'id': 'field'})
Tbody = Table.find('tbody')
Records = Tbody.find_all('tr')
Record = Records.find_all('td')
for field in Records:
print (Record[2].text)
我收到错误:
Traceback (most recent call last):
File "C:/Users/arcee/PycharmProjects/scraper/main.py", line 33, in <module>
Record = Records.find_all('td')
AttributeError: 'ResultSet' object has no attribute 'find_all'
是否有更简单的方法来获取第二个和第三个TD元素?
由于
答案 0 :(得分:0)
你因为这些问题而得到了这个错误:
Records = Tbody.find_all('tr')
Record = Records.find_all('td')
find_all
会返回list
(ResultSet
)次搜索标记的出现次数。 ResultSet
没有find_all
属性 - 但是每个成员都有Records = Tbody.find_all('tr')
for record in records:
print(record.find_all('td'))
属性。所以,做..
{"Key":"value1"},{"Key":"value2", "id":"id"}
将使您的代码运行。