私はウェブサイト上のすべての製品名を取得するためにウェブサイトスクレーパーを作っています。私は、製品のタイトルを見つけるときにKeyErrorを取得し続けます。bs4 Selectors Not Take taken "image:title"
HTML:
<url>
<loc>
https://shop.havenshop.ca/products/cassady-sunglasses-indigo-gunmetal
</loc>
<lastmod>2017-10-19T08:53:44-07:00</lastmod>
<changefreq>daily</changefreq>
<image:image>
<image:loc> https://cdn.shopify.com/s/files/1/0051/7042/products/Cassady_SunglassesIndigoGunmetal1.jpg?v=1436564480</image:loc>
<image:title>"Cassady" Sunglasses Indigo/Gunmetal</image:title>
</image:image>
</url>
Pythonのコード:
session = requests.session()
sitemap = session.get(link)
data = sitemap.text
soup = BeautifulSoup(data, "lxml")
items = soup.find_all("url")
for i in range(len(items)):
for item in items[i]:
print items[i]["image:image"]["image:title"]
エラー:
KeyError: 'image:title'
プリントキー 'プリント(項目[I] [ "画像:画像"]。キー())' – furas
ループのためのあなたの内側である 'アイテム内のアイテムの[I]: 'なぜ、items [i] [" image:image "] [" image:title "]'を印刷していますか? item ["image:image"] ["image:title"] 'ではありませんか? –
@JohnGordonこれは "TypeError:文字列インデックスは整数でなければなりません"を返します – Michael