我从Web链接抓取表格,并希望通过删除所有脚本标记来重建表格。以下是源代码。
arguments
如何删除所有不同的脚本标记?以下面的单元格为例,其中包含标记OrderFulfillment.where(shopper_id: shopper.id, fulfillment_status: [:fulfillment_requested_assignment, :fulfillment_assigned, :fulfillment_shopping])
,response = requests.get(url)
soup = BeautifulSoup(response.text)
table = soup.find('table')
for row in table.find_all('tr') :
for col in row.find_all('td'):
#remove all different script tags
#col.replace_with('')
#col.decompose()
#col.extract()
col = col.contents
和a
。< / p>
br
我的预期结果是:
td
答案 0 :(得分:5)
您在询问get_text()
:
如果您只想要文档或标记的文本部分,则可以使用
get_text()
方法。 它返回文档中或文本下方的所有文本 tag,作为单个Unicode字符串
td = soup.find("td")
td.get_text()
请注意,.string
会在这种情况下返回None
,因为td
有多个孩子:
如果标签包含多个内容,则不清楚是什么
.string
应该引用,因此.string
被定义为None
演示:
>>> from bs4 import BeautifulSoup
>>>
>>> soup = BeautifulSoup(u"""
... <td><a href="http://www.irit.fr/SC">Signal et Communication</a>
... <br/><a href="http://www.irit.fr/IRT">Ingénierie Réseaux et Télécommunications</a>
... </td>
... """)
>>>
>>> td = soup.td
>>> print td.string
None
>>> print td.get_text()
Signal et Communication
Ingénierie Réseaux et Télécommunications
答案 1 :(得分:1)
尝试调用col.string。那只会给你文字。