Python“;返回self.attrs[key]”;错误

Python“;返回self.attrs[key]”;错误,python,web-scraping,Python,Web Scraping,我正在尝试编写一个非常简单的python/漂亮的脚本 from urllib.request import urlopen as uReq from bs4 import BeautifulSoup as soup my_url = 'https://www.travelok.com/listings/sid.1?last_region=&searchFormText=camping' uclient = uReq(my_url) page_html = uclient.read()

我正在尝试编写一个非常简单的python/漂亮的脚本

from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup 
my_url = 'https://www.travelok.com/listings/sid.1?last_region=&searchFormText=camping'
uclient = uReq(my_url)
page_html = uclient.read()
uclient.close()
filename = "oklahoma_state_parks.csv"
f = open(filename,"w")
headers = "park_name, park_phone, \n"
f.write (headers)
page_soup = soup(page_html, 'html.parser')
containers = page_soup.findAll("article", {"class":"search-result"})
这是测试代码,以确保它在此处工作。

parkinfo_name_test = containers[0].h2.text
parkinfo_phone_test = containers[0].address.div.text

parkinfo_name_test_2 = containers[2].h2.text
parkinfo_phone_test_2 = containers[2].address.div.text
如果我将代码运行到这一点(以上所有内容),它就可以正常工作。 我可以打印(parkinfo_name_test)并获得第一个结果。但当我尝试循环它时,它失败了。当我试着用 代码:我收到一条错误消息:

for container in containers:
    parkinfo_name = container[0].h2.text
    parkinfo_phone = container[0].address.div.text 

    print ("parkinfo_name: " + parkinfo_name)
    print ("parkinfo_phone " + parkinfo_phone)

    f.write (parkinfo_name + "," + parkinfo_phone + "\n")
    f.close ()
这是我收到的错误消息:
回溯(最近一次调用last):文件“oklahoma_state_parks.py”,第43行,在parkinfo_name=container[0].h2.text
文件“C:\Users\Myname\AppData\Local\Programs\Python\Python37-32\lib\site packages\beautifulsoup4-4.6.1-py3.7.egg\bs4\element.py”, 第1071行,在\uuuu getitem\uuuu return self.attrs[键]中
KeyError:0

问题似乎在这里:

for container in containers:
    parkinfo_name = container[0].h2.text
试着这样做:

for container in containers:
    parkinfo_name = container.h2.text
    parkinfo_phone = container.address.div.text 

    print ("parkinfo_name: " + parkinfo_name)
    print ("parkinfo_phone " + parkinfo_phone)

    f.write (parkinfo_name + "," + parkinfo_phone + "\n")
    f.close ()

容器[0]
替换为
容器
,一旦您迭代
容器
容器=容器[0]
是-问题出在[0]。谢谢你,太棒了!非常感谢。