我搜索了这个问题并尝试使用上面的解决方案,但它们似乎都没有用。
我目前的代码是:
for item in g_data:
print item.contents[1].find_all("a", {"class": "a-link-normal"})[[1], [2], [3]]['href']
这会产生TypeError: indices must be integers, not tuple
。
我该如何解决这个问题呢?我知道这是一个简单的问题,但我尝试的解决方案会导致它出现并说“不是列表”,“不是str'或者'不是元组'。
答案 0 :(得分:0)
所以我通过规避选择问题彻底解决了手头的问题。
继承人的所作所为:
表示g_data中的项目: print item.contents [1] .find_all(" a",{" class":" a-link-normal s-access-detail-page a-text-normal& #34;})[0] [" HREF"]
这样做首先搜索页面上的主要内容(任何网址都可以在G_data中)。接下来它将选择[1]这是焦点内容,产品,图像,链接等。它摆脱了所有其他的东西。然后是括号内的部分,它的作用是选择这段内容
Gorilla Tape 11m
现在它没有选择那个,它选择了页面上的所有产品。之后有[0]这是第一个产品的选择,所以如果页面上有15个产品,则为0。
然后你有[" href"]这样做只需要该关键字中的数据,在这种情况下是相关产品页面的网址。
通过在此方法中执行此操作,您可以选择代码并粘贴,并使其如下所示:
print item.contents [1] .find_all(" a",{" class":" a-link-normal s-access-detail-page a-文本的正常"})[0] [" HREF"] print item.contents [1] .find_all(" a",{" class":" a-link-normal s-access-detail-page a-text-normal& #34;})[1] [" HREF"] print item.contents [1] .find_all(" a",{" class":" a-link-normal s-access-detail-page a-text-normal& #34;})[2] [" HREF"]
或者您可以找到一种方法,在一行代码中列出X-Y中的所有产品,这不应该是困难的。
答案 1 :(得分:-1)
如果有效
ArrayList<String> animals = new ArrayList<String>();
animals.add("Asian");
这是正确的,您只需指定一个整数作为索引。我想你想这样做。
print item.contents[1].find_all("a", {"class": "a-link-normal"})[1]['href']