Python:BeautifulSoup4抓取维基百科时出错



我是网络抓取和python的新手,我想制作一个可以抓取维基百科并使其更快的代码。在这个中,你只需要键入你想搜索的东西,例如"时钟",所以它必须https://en.wikipedia.org/wiki/Clock然后从那里刮下来。如果有其他问题,请告诉我。

GitHub

所以当我运行代码时,我会收到以下错误:

Traceback (most recent call last):
File "main.py", line 26, in <module>
wikibot(url)
File "main.py", line 25, in wikibot
print(soup,('p')[i].text)
IndexError: string index out of range

在这之后,我希望它将这些数据写入一个文本文件,我认为这可以用完成

write()

与相同

print()

我正在遵循一个教程,当他展示一个演示时,它运行得完美无误。是我的代码错了还是我的包出错了?

尝试替换GitHub源代码中的行:

for i in range(1,3):
print(soup,('p')[i].text)

带有:

paragraphs = soup.find_all('p')
for paragraph in paragraphs:
print(paragraph.text)
print()

这将打印所有段落。

更新:将输出写入文件

with open('output.txt', 'w', encoding='utf-8') as f:
paragraphs = soup.find_all('p')
for paragraph in paragraphs:
f.write(paragraph.text)
f.write('nn') # two newlines

如果您想提取并打印文本而不是for循环,请使用以下方法:

print(soup.get_text())

有关其他方法和用法,请查看文档:Beautiful Soup Documentation

最新更新