簡體   English   中英

為什么運行第一個循環后我的Python程序關閉?

[英]Why does my Python program close after running the first loop?

我是Python和Scrap的新手。 我正在嘗試運行兩個循環。 一個人從一頁抓取ID。 然后,使用這些ID,我調用另一個API以獲取更多信息/屬性。

但是,當我運行該程序時,它只運行了第一行代碼(獲取了ID),但隨后卻關閉了,而沒有運行第二部分。 我覺得我在這里缺少關於Python控制流的一些基本知識。 當我在Terminal中運行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])

如果您在Windows中運行(文件名不區分大小寫),則當您重新打開文件以進行讀取時,您可以打開的文件(parcelids.csv)仍然處於打開狀態。

嘗試關閉文件,然后再打開文件以進行讀取。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM