django web scraper beautiful soup 和 urllib
django web scraper beautiful soup and urllib
我正在使用 scraper 为我的数据库获取一些数据我正在使用此代码从其他站点添加产品
def scrape():
path=''
counter=0
session= requests.Session()
session.headers={
"User-Agent":"my user agent"
}
url='some url'
content=session.get(url,verify=False).content
soup=bs4.BeautifulSoup(content,'html.parser')
result=soup.find_all('div',{'class':'column column-block block-list-large single-item'})
for i in result:
counter+=1
name=i.find_all('h1',{'class':'itemTitle'})[0]
price=i.find('h3',{'class':'itemPrice'})
image=i.find('img',{'class':'img-size-medium imageUrl'})['data-src']
path=f'pics/{counter}.jpg'
img=path
barcode=f'name{counter}'
description='this is my product'
urllib.request.urlretrieve(image,path)
cat=category.objects.get(id=140)
br=branch.objects.get(id=8)
products.objects.create(name=name.text,Barcode=barcode,branch=br,image=img,
description=description,price=price,category=cat)
scrape()
它正在下载产品的图像,但在此之后我遇到了错误
值 = value.resolve_expression(self.query, allow_joins=假, for_save=真)
类型错误:'NoneType'对象不可调用
这很可能是price=price
在创建操作中。 price
不是字段的有效值,它是一个对象。你能用 price=price.text
改变那个部分吗?
我正在使用 scraper 为我的数据库获取一些数据我正在使用此代码从其他站点添加产品
def scrape():
path=''
counter=0
session= requests.Session()
session.headers={
"User-Agent":"my user agent"
}
url='some url'
content=session.get(url,verify=False).content
soup=bs4.BeautifulSoup(content,'html.parser')
result=soup.find_all('div',{'class':'column column-block block-list-large single-item'})
for i in result:
counter+=1
name=i.find_all('h1',{'class':'itemTitle'})[0]
price=i.find('h3',{'class':'itemPrice'})
image=i.find('img',{'class':'img-size-medium imageUrl'})['data-src']
path=f'pics/{counter}.jpg'
img=path
barcode=f'name{counter}'
description='this is my product'
urllib.request.urlretrieve(image,path)
cat=category.objects.get(id=140)
br=branch.objects.get(id=8)
products.objects.create(name=name.text,Barcode=barcode,branch=br,image=img,
description=description,price=price,category=cat)
scrape()
它正在下载产品的图像,但在此之后我遇到了错误
值 = value.resolve_expression(self.query, allow_joins=假, for_save=真)
类型错误:'NoneType'对象不可调用
这很可能是price=price
在创建操作中。 price
不是字段的有效值,它是一个对象。你能用 price=price.text
改变那个部分吗?