第二次尝试网页抓取,却遇到了一个奇怪的错误。在
我要得到的最终结果是废弃表并将每一行放入一个SQL表中,但是这有90年代风格的嵌套表,没有分区,也没有类。我读过关于使用结构的书,但我不知道怎么做。我一直很好奇我是否可以从某一行开始作为“结构”,但这也有局限性。在
当前的挑战是,这段代码在移到下一行之前会拾取重复的元素并忽略其他元素。在import bs4
import urllib
from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup
my_url = 'http://www.texasregionalradio.com/top100.asp'
uClient = uReq(my_url)
page_html = uClient.read()
uClient.close()
page_soup = soup(page_html, "html.parser")
table_soup = page_soup
# Limit the amount of HTML grabbed by Soup
#table_soup = page_soup.findAll("table", {"class":"sample"})
# Trying to grab cells from each row. Randomly chose [8:10] but I don't know what they are selecting or why.
for row in table_soup.findAll("tr")[8:10]:
for cell in row.findAll("td"):
print(cell.text)
结果:
^{pr2}$
另外,我刚刚了解到,文本可以格式化unicode,这样我就不会得到奇怪的字符串,我对此非常满意,而且没有人可以与关心它的人分享。所以,那就是你。谢谢你的帮助。:)
问题1:如何才能最好地将桌子与这些乱七八糟的东西隔离开来?
问题2:为什么缺少元素?
问题3:什么是重复的元素?在
编辑:
将解析器切换到“html5lib”可以改善一些结果:12
2
1
PUT MY MONEY ON THAT / Independent (1) Weeks at #1
Curtis Grimes
PUT MY MONEY ON THAT / Independent (1) Weeks at #1
Curtis Grimes
2192
1967
+225
88%
1
PUT MY MONEY ON THAT / Independent (1) Weeks at #1
Curtis Grimes