2017-02-01 7 views
1

Я застреваю, пытаясь захватить текстовые значения из тегов a.href. Мне удалось выделить целевые значения, но при попытке get_text() я столкнулся с ошибкой.Забыть что-нибудь - Python BeautifulSoup и FinViz

import requests 
from bs4 import BeautifulSoup 

base_url = 'http://finviz.com/screener.ashx?v=152&s=ta_topgainers&o=price&c=0,1,2,3,4,5,6,7,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') 
rows = sub[5].findAll('td') 
for row in rows: 
    data = row.a 
    print data 
+0

Я не вижу никаких вызовов 'get_text' здесь ... – ForceBru

ответ

2

Предполагая, что вы на самом деле пытается напечатать data.get_text(), он потерпит неудачу для некоторых из row в rows - потому, что в некоторых случаях, нет ребенка ссылка элементов в td клетках. Вы можете проверить, что ссылка была найдена заранее:

for row in rows: 
    link = row.a 
    if link is not None: 
     print(link.get_text()) 

Обратите внимание, что «строка» и «строки», вероятно, не лучшие имена переменных, так как вы на самом деле итерация «ячеек» - td элементов.

+0

right - цикл для итерации мимо пустых элементов. Спасибо за помощь! –

+0

Как насчет повторения первого «1», который заполняется? –

+0

@citra_amarillo первый «1» - не могли бы вы подробнее рассказать о том, что вы имеете в виду? Благодарю. – alecxe

 Смежные вопросы

  • Нет связанных вопросов^_^