python - 他们告诉我错误'built in_function_or_method'对象不可下标'
问题描述
他们向我显示错误'built in_function_or_method'对象不可下标'在 products.append[name.text] 行中显示这些错误他们表明您的对象不可下标
from bs4 import BeautifulSoup
import requests
import pandas as pd
products=[]
review = []
ratings = []
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0",
"Accept-Encoding": "gzip, deflate",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"DNT": "1",
"Connection": "close",
"Upgrade-Insecure-Requests": "1",
}
for page in range(1, 5):
cookies = {'session': '17ab96bd8ffbe8ca58a78657a918558'}
r = requests.get(
"https://www.amazon.com/s?k=redmi&page=2&qid=1631528810&ref=sr_pg_={page}".format(
page=page
),
headers=headers,
cookies =cookies
)
soup = BeautifulSoup(r.content, "lxml")
for d in soup.select(".s-result-item[data-component-type='s-search-result']"):
name=d.find('h2')
if name is not None:
products.append[name.text]
else:
products.append("-")
rating = d.find("span", attrs={"class": "a-icon-alt"})
if rating is not None:
ratings.append(rating.text)
else:
ratings.append("-")
reviews = d.find("span", class_="a-size-base")
if reviews is not None and rating is not None:
review.append(reviews.text)
else:
review.append("-")
df = pd.DataFrame({'Product Name':products,'Reviews':review,'Ratings':ratings})
df.to_csv(kns.csv)
解决方案
现在您的代码工作正常。有两件事是错误的:你必须用它(name.text)
来摆脱你提到的错误。其次,您必须使用df.to_csv('kns.csv')
而不是df.to_csv(kns.csv)
表示缺少引号。
from bs4 import BeautifulSoup
import requests
import pandas as pd
products = []
review = []
ratings = []
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0",
"Accept-Encoding": "gzip, deflate",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"DNT": "1",
"Connection": "close",
"Upgrade-Insecure-Requests": "1",
}
for page in range(1, 5):
cookies = {'session': '17ab96bd8ffbe8ca58a78657a918558'}
r = requests.get(
"https://www.amazon.com/s?k=redmi&page=2&qid=1631528810&ref=sr_pg_={page}".format(
page=page
),
headers=headers,
cookies=cookies
)
soup = BeautifulSoup(r.content, "lxml")
for d in soup.select(".s-result-item[data-component-type='s-search-result']"):
name = d.find('h2')
if name is not None:
products.append(name.text)
else:
products.append("-")
rating = d.find("span", attrs={"class": "a-icon-alt"})
if rating is not None:
ratings.append(rating.text)
else:
ratings.append("-")
reviews = d.find("span", class_="a-size-base")
if reviews is not None and rating is not None:
review.append(reviews.text)
else:
review.append("-")
df = pd.DataFrame(
{'Product Name': products, 'Reviews': review, 'Ratings': ratings})
df.to_csv('kns.csv')
推荐阅读
- android - 机器学习套件条码检测 - isOperational() 始终为假 - 未找到可接受的模块
- erpnext - ERPNext:使用脚本报表连接多个表
- ajax - Laravel Ajax 在页面重新加载时工作正常,但是当我使用 Ajax 过滤数据时,使用 jsscroll 分页不起作用
- wordpress - 通过添加 www 停止 localhost 自动重定向到 https
- c - 将 uint16 转换为字节数组
- java - OpenGL ES 渲染循环中的短叠加声音
- python-3.x - AttributeError:模块“networkx”没有属性“generate_graph6”
- linux - 有没有办法创建一个安装程序或 .exe 只需单击一下即可执行所有 linux 命令?
- yocto - IMAGE_INSTALL 和 CORE_IMAGE_EXTRA_INSTALL 有什么区别
- spartacus-storefront - 扩展 OOTB Spartacus Product 和 Occ.Product UI 模型