簡體   English   中英

“ int”對象不可下標(從網站抓取表格)

[英]'int' object is not subscriptable (scraping tables from website)

我非常不熟悉編碼。大約一個星期前,我剛剛學會了如何使用終端,如果您對我的使用情況有所了解。 我需要學習如何從網站上抓取數據,因此我正在熟悉的網站上進行練習,並且試圖創建一個顯示以下URL數據的csv文件: http : //phish.net/song 我實質上是從該站點( https://chihacknight.org/blog/2014/11/26/an-intro-to-web-scraping-with-python.html )修改了代碼,然后嘗試使用它。

from bs4 import BeautifulSoup
import requests
import pandas as pd
url = "http://phish.net/song?"
r = requests.get(url)
data = r.text
soup = BeautifulSoup(data, "lxml")
table = soup.find('table')
rows = table.find('tr')
data = {
'song': [],
'original_artist': [],
'times': [],
'debut': [],
'last': [],
'gap': []
}
for row in rows:
    cols = row.find('td')
    data['song'].append(cols[0].get_text()))
    data['original_artist'].append(cols[1].get_text())
    data['times'].append(cols[2].get_text())
    data['debut'].append(cols[3].get_text())
    data['last'].append(cols[4].get_text())
    data['gap'].append(cols[5].get_text())
phishData = pd.DataFrame(data)
phishData.to_csv("PhishData.csv")

我收到以下錯誤:

Traceback (most recent call last):
  File "phishnet.py", line 20, in <module>
    data['song'].append(str(cols[0].get_text()))
TypeError: 'int' object is not subscriptable

哪個對象不能下標? 以及如何解決此問題? 在此先感謝您的幫助,如果這不適合使用此論壇,請告訴我。

pd.read_html似乎pd.read_html您的要求。

df = pd.read_html("http://phish.net/song?")[0]

df.head()
          Song Name Original Artist                 Times       Debut  \
0      Alumni Blues           Phish                   107  1985-03-16   
1     And So To Bed           Phish  Found in Discography         NaN   
2  You Enjoy Myself           Phish                   581  1986-02-03   
3         AC/DC Bag           Phish                   310  1986-04-01   
4    F**k Your Face           Phish                    13  1987-04-29   

         Last   Gap  
0  2017-07-29  13.0  
1         NaN   NaN  
2  2017-12-31   0.0  
3  2017-12-28   3.0  
4  2017-08-05   8.0 

而且,最后的to_csv調用-

df.to_csv("PhishData.csv")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM