gpt4 book ai didi

python - 在 Python 中抓取一个表类

转载 作者:行者123 更新时间:2023-11-28 16:23:55 24 4
gpt4 key购买 nike

我正在尝试抓取 http://emojipedia.org/emoji/ ,但我不确定这样做最有效的方法是什么。我想抓取的是在表类 ="emoji_list"中找到的。我想将每个“td”中的内容保存在单独的列中。输出将如下所示,其中每一行代表一个表情符号:

Col1_Link               Col2_emoji      Col3_Comment        Col4_UTF
"/emoji/%F0%9F%98%80/" 😀 Grinning Face U+1F600

到目前为止,我已经编写了以下代码,但我不确定最好的方法是什么。

import requests
from bs4 import BeautifulSoup
import urllib
import re

url = "http://emojipedia.org/emoji/"
html = urllib.urlopen(url)
soup = BeautifulSoup(html)
soup.findAll('tr', limit=2)

非常感谢您的帮助。

最佳答案

soup.findAll('tr', limit=2) 考虑到只获取页面上的前两个 trs,不会做太多事情。您需要首先找到 的所有行,然后提取您想要的内容,即每个tr 中的两个tds 中的内容:

import requests
from bs4 import BeautifulSoup
url = "http://emojipedia.org/emoji/"
html = requests.get(url).content

soup = BeautifulSoup(html)
table = soup.select_one("table.emoji-list")

for row in table.find_all("tr")[:5]:
td1, td2 = row.find_all("td")
em, desc = td1.text.split(None, 1)
print(td1.a["href"], em, desc, td2.text)

另一种只获取文本而不拆分的方法是使用 find(text=True, recursive=False)

从 a 标签中获取不包括子文本的文本
for row in table.find_all("tr"):
td1, td2 = row.find_all("td")
print(td1.a["href"], td1.a.span.text, td1.a.find(text=True, recursive=False), td2.text)

此外,我会坚持使用 urllib 上的请求。

关于python - 在 Python 中抓取一个表类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38155206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com