【发布时间】:2020-05-27 11:59:05
【问题描述】:
我只是尝试运行下面的代码。我没有收到错误消息,但实际上没有数据写入 CSV。我查看了网站,发现 snapshot-td2-cp 和 snapshot-td2 元素。当我删除 writer.writerow 语句并使用 print 语句时,我看到六个数字 2 字符,仅此而已。
import csv
import requests
from bs4 import BeautifulSoup
url_base = "https://finviz.com/quote.ashx?t="
tckr = ['SBUX','MSFT','AAPL']
url_list = [url_base + s for s in tckr]
with open('C:/Users/Excel/Desktop/today.csv', 'a', newline='') as f:
writer = csv.writer(f)
for url in url_list:
try:
fpage = requests.get(url)
fsoup = BeautifulSoup(fpage.content, 'html.parser')
# write header row
writer.writerow(map(lambda e : e.text, fsoup.find_all('td', {'class':'snapshot-td2-cp'})))
# write body row
writer.writerow(map(lambda e : e.text, fsoup.find_all('td', {'class':'snapshot-td2'})))
except:
print("{} - not found".format(url))
在 SBUX 示例中,我想从这个表中获取数据。
几个月前我测试了这段代码,一切正常。有人可以指出我的错误吗?我没有看到它。谢谢。
【问题讨论】:
-
您在
fpage上收到 403: Access Denied 响应。 -
是的,我只是想通了。我不记得以前任何时候都必须登录该站点。所以,我想我需要 Selenium 来做这个?听起来对吗?
-
是的 selenium 是自动浏览 @ASH 的路径
标签: python python-3.x beautifulsoup python-requests