我是Python和scraping的新手。我正在尝试运行两个循环。一个人去从一个页面上抓取ids。然后,使用这些ids,我调用另一个API来获取更多信息/属性。
但是当我运行这个程序时,它只运行了第一部分(获取I),但随后它关闭了,没有运行第二部分。我觉得我在这里遗漏了一些关于Python中控制流的非常基本的东西。当我在终端中运行Python时,为什么Python在第一次循环后关闭?
import requests
import csv
import time
import json
from bs4 import BeautifulSoup, Tag
file = open('parcelids.csv','w')
writer = csv.writer(file)
writer.writerow(['parcelId'])
for x in range(1,10):
time.sleep(1) # slowing it down
url = 'http://apixyz/Parcel.aspx?Pid=' + str(x)
source = requests.get(url)
response = source.content
soup = BeautifulSoup(response, 'html.parser')
parcelId = soup.find("span", id="MainContent_lblMblu").text.strip()
writer.writerow([parcelId])
out = open('mapdata.csv','w')
with open('parcelIds.csv', 'r') as in1:
reader = csv.reader(in1)
writer = csv.writer(out)
next(reader, None) # skip header
for row in reader:
row = ''.join(row[0].split())[:-2].upper().replace('/','-') #formatting
url="https://api.io/api/properties/"
url1=url+row
time.sleep(1) # slowing it down
response = requests.get(url1)
resp_json_payload = response.json()
address = resp_json_payload['property']['address']
writer.writerow([address])
发布于 2018-06-08 04:12:36
如果您在windows (其中文件名不区分大小写)中运行,则当您重新打开要读取的文件(parcelids.csv)时,该文件仍处于打开状态。
请先尝试关闭该文件,然后再打开该文件进行读取。
https://stackoverflow.com/questions/50749378
复制相似问题