下面是我的代码。
import requests
import re
import pandas as pd
from bs4 import BeautifulSoup
r = requests.get("https://www.gutenberg.org/browse/scores/top")
soup = BeautifulSoup(r.content,"lxml")
List1 = soup.find_all('ol')
List1
newlist = []
for List in List1:
ulList = List.find_all('li')
extend_list = []
for li in ulList:
#extend_list = []
for link in li.find_all('a'):
a = link.get_text()
print(a)
我的输出是
1.我想把输出转换成列表的列表
[['A Room with a View by E. M. Forster (37480)'], ['Middlemarch by George Eliot (34900)'],['Little Women; Or, Meg, Jo, Beth, and Amy by Louisa May Alcott (31929)']]
1.将列表拆分为两部分
[["A Room with a View by E. M. Forster", "37480"], ["Middlemarch by George Eliot", "34900"],["Little Women; Or, Meg, Jo, Beth, and Amy by Louisa May Alcott", "31929"]]
1.将数据加载到数据框
2条答案
按热度按时间ep6jt1vc1#
您可以使用一个简短的正则表达式和
str.extract
一步完成:如果需要列表的中间列表:
输出:
zfycwa2u2#
简化代码,同时更具体地选择元素:
示例
输出
| | 电子书|编码|
| - -|- -|- -|
| 第0页|E. M.福斯特的《一间风景房》|小行星37480|
| 一个|乔治·艾略特《米德尔马契》|小行星34900|
| 2个|《小妇人》或者,路易莎·梅·奥尔科特的《梅格、乔、贝丝和艾米》|小行星31929|
| 三个|《魔法四月》伊丽莎白·冯·阿尼姆|小行星31648|
| 四个|蓝色城堡:L·M·蒙哥马利的小说|小行星30646|
| 五个|《白鲸记》或《鲸鱼》赫尔曼·梅尔维尔著|小行星30426|
| 六个|莎士比亚全集作者:威廉·莎士比亚|小行星30266|
...