【发布时间】:2020-03-19 03:20:21
【问题描述】:
所以我正在关注这个关于使用 Python 进行 Webscraping 的教程。每当我运行代码时都会遇到此错误
FileNotFoundError: [Errno 2] No such file or directory: './data/nyct/turnstile/turnstile_200314.txt'
我有一种预感,这意味着 webscraper 无法访问该文件,但是当我检查 HTML 时,该文件存在。请帮忙。 这是我的参考代码:
import requests
import urllib.request
import time
from bs4 import BeautifulSoup
#Set URL you want to webscrape from
url = 'http://web.mta.info/developers/turnstile.html'
#Connect to URL
response = requests.get(url)
#Parse HTML and save to BeautifulSoup object
soup = BeautifulSoup(response.text,'html.parser')
#Loop to download whole dataset
linecount = 1 #var to track current line
for onetag in soup.findAll('a'):
if linecount>=36:
link = onetag['href']
downloadurl = 'http://web.mta.info/developers/'+link
urllib.request.urlretrieve(downloadurl,'./'+link[link.find('/turnsttile_')+1:])
time.sleep(3)#pause code so as to not get flagged as spammer
#increment for next line
linecount+=1
【问题讨论】:
-
该错误与从网站读取无关;在您的系统上写入
.txt文件有困难。data/nyct/turnstile目录是否与脚本位于同一目录中? -
我没有创建一个目录,我假设我正在提取的文件将被发送到那里。抱歉,我对此很陌生,请您详细说明一下。
-
抱歉,“将被发送到那里”是什么意思?您的代码从 URL 下载,然后将其保存到本地文件。如果要在该目录下保存文件,则必须已创建该目录。
-
所以由于没有
data/nyc/turnstile文件目录,所以基本上代码无法保存文件? -
请提供完整的错误信息。顺便说一句,您应该将
response.content的结果传递给BeautifulSoup(),而不是response.text。另外,为什么同时使用 requests 和 urllib.request?
标签: python web web-scraping