python - 在 Wikipedia 上使用 BeautifulSoup 进行网页抓取
问题描述
我是 python 新手,并试图使用 BeautifulSoup从 wikitable 的第三列中提取Wikipedia 页面上的所有火车站名称。我已经尝试了下面的代码,但它似乎将每一行单元格作为一组信息返回
contentTable = soup.find('table', { "class" : "wikitable"})
cols = contentTable.find_all('td')
for col in cols:
soup.find_all("a")
print(col.get_text())
输出如下,代表表中的 1 行:
CG2
TE [a]
Changi Airport
樟宜机场
சாங்கி விமானநிலையம்
8 February 2002
Changi Airport
CGA
Changi
Singapore Changi Airport, Changi Airport PTB2 Bus Terminal
预期的数据框列站名称:
Station Names
Jurong East
Bukit Batok
etc...
有人可以教我如何正确编码吗?谢谢!
解决方案
您的程序只是简单地在 wikitable 上打印每个 'td' 标记的文本内容。
试试这个:
contentTable = soup.find('table', {"class": "wikitable"})
trs = contentTable.find_all('tr')
for tr in trs:
tds = tr.find_all('td')
for td in tds:
if tds.index(td) == 2:
print(td.get_text())
首先,它抓取每一行,找到该行上的每个 'td'-tag,如果它是所述行上的第三个 'td'-tag,则打印出其内容。
推荐阅读
- angular - 角度 ngFor 与使用引导程序和不同行类型的表
- junit - 修复 JUnit - 自动装配时钟
- jquery - 将使用中的函数绑定到表单字段
- c# - Trying to convert a method from a string into an integer
- c# - Esp8266 与 Arduino 和 c# 应用程序通过 WLAN 通信
- bash - Bash, join two tables of differing lengths using sort and join
- perforce - Perforce 无法发布到新仓库
- android - Change Query in Firebase Recycvlerview
- javascript - Add figcaption name to h2
- javascript - 为什么不改变 auth.guard 中的值?