我正在尝试从容器内抓取文本,但我无法弄清楚如何抓取其中的一些文本。
此代码适用于抓取工具,该抓取工具从格式如下的网页中为每个条目提取三列:
<td class="EP">1</td>
</tr>
<tr class="EG">
<td>
</td>
<td>
<a href="https://www.COMPANYWEBSITE/">COMPANY NAME</a>
</td>
<td DO="9999">
<div class="BN">9999</div>
<img src="https://www.IMAGE.com">
</td>
<td>
Keyword 1, Keyword 2, Keyword 3, Keyword 4
</td>
<td>New York City</td>
<td>USA</td>
我已成功抓取公司名称和 BN(即 9999),但我还需要抓取每个关键字,这就是我遇到麻烦的地方。
我使用了以下 Python 代码:
page_soup = soup(page_html, "html.parser")
TT = page_soup.findAll("tr",{"class":"EG"})
container = TT[0]
for container in TT:
company_name = container.a.text
b_n = container.div.text
keywords = container.?????
我不知道如何将关键字输入到我的输出中。任何帮助将不胜感激。
最佳答案
你可以使用第n种类型
from bs4 import BeautifulSoup as bs
html = '''
<td class="EP">1</td>
</tr>
<tr class="EG">
<td>
</td>
<td>
<a href="https://www.COMPANYWEBSITE/">COMPANY NAME</a>
</td>
<td DO="9999">
<div class="BN">9999</div>
<img src="https://www.IMAGE.com">
</td>
<td>
Keyword 1, Keyword 2, Keyword 3, Keyword 4
</td>
<td>New York City</td>
<td>USA</td>
'''
page_soup = bs(html, 'lxml')
TT = page_soup.findAll("tr",{"class":"EG"})
for container in TT:
print(container.select_one('td:nth-of-type(4)').text)
关于python - 如何使用 Python 从容器内的文本中抓取 Td,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55973128/