忘记一些事 - Python BeautifulSoup和FinViz

时间:2017-02-01 19:22:09

标签: python web-scraping beautifulsoup

我试图从a.href标记中获取文本值时遇到困难。我设法隔离目标值,但在尝试get_text()时仍然遇到错误。

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

1 个答案:

答案 0 :(得分:2)

假设您实际上是在尝试打印data.get_text(),那么row中的某些rows会失败 - 因为在某些情况下,td中没有子链接元素{1}}细胞。您可以事先检查是否找到了链接:

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

请注意,“row”和“rows”可能不是最好的变量名,因为您实际上正在迭代“cells” - td元素。