最初に、リターン文字列に先頭に1があり、それを渡すのに問題が発生しました。私は[0:]:メソッドを使って試してみました。私はそれをスキップするか、それをスキップしてid値である2番目の値にしたいと思います。スクラップテーブルPython BeautifulSoup MySQLのストレージとインタラクション
さらに、テーブルから返されたアイテムを格納用にフォーマットしようとすると、インデックス外のエラーが発生しています。私はデフストア()を使用しています。
import requests
from bs4 import BeautifulSoup
import MySQLdb
#mysql portion
mydb = MySQLdb.connect(host='****',
user= '****',
passwd='****',
db='****')
cur = mydb.cursor()
def store (id, ticker):
cur.execute('INSERT IGNORE INTO TEST (id, ticker) VALUES (\"%s\", \"%s\")',(id, ticker))
cur.connection.commit()
base_url = 'http://finviz.com/screener.ashx?v=152&s=ta_topgainers&o=price&c=0,1,2,3,4,5,6,24,25,63,64,65,66,67'
html = requests.get(base_url)
soup = BeautifulSoup(html.content, "html.parser")
main_div = soup.find('div', attrs = {'id':'screener-content'})
table = main_div.find('table')
sub = table.findAll('tr')
cells = sub[5].findAll('td')
for cell in cells:
link = cell.a
if link is not None:
link = link.get_text()
id = link[0]
ticker = link[1]
store(id, ticker)
print(link)
何 ' "リターン文字列"'?どこで/どのようにこの "戻り文字列"を取得しますか? – furas
あなたは 'link = []'を定義し、後でそれを 'link = cell.a'で上書きします。後で' link = link.get_text() 'という文字列を取得しますが、' id = link [0] ' 、 'ticker = link [1]'となります。あなたは何をしようとしますか? – furas
- 冗長リンク= []を削除しました。リンクリスト項目をコメントアウトすると、link.aデータが表示されます。データを保存するために、リスト項目に集めました。 –