【发布时间】:2020-12-03 10:47:56
【问题描述】:
我是网络抓取的新手,所以在这里我为亚马逊网络抓取编写了一个代码,但我在分页时遇到错误,请指导我如何解决这个错误。 看看我的代码:
from requests_html import HTMLSession
from bs4 import BeautifulSoup as bs
url = 'https://www.amazon.com/s?k=oneplus+8+pro&crid=341BPYMDWRS5W&qid=1606986946&sprefix=oneplus%2Caps'
s = HTMLSession()
def getdata(url):
r = s.get(url)
soup = bs(r.text,'html.parser')
return soup
def nextpage(soup):
page = soup.find('ul', {'class':'a-pagination'})
if not page.find('li', {'class':'a-disabled a-last'}):
url = 'https://www.amazon.com'+ str(page.find('li', {'class':'a-selected'}).find('a')['href'])
return url
else:
return
while True:
soup = getdata(url)
url = nextpage(soup)
if not url:
break
print(url)
我收到了这个错误:
Traceback(最近一次调用最后一次): 文件“C:\Users\DELL\PycharmProjects\first\Amazon.py”,第 34 行,在 url = 下一页(汤) 文件“C:\Users\DELL\PycharmProjects\first\Amazon.py”,第 27 行,在下一页 如果不是 page.find('li', {'class':'a-disabled'}): AttributeError: 'NoneType' 对象没有属性 'find'
【问题讨论】:
-
在到达最后一页之前是否出现错误?
标签: python web-scraping beautifulsoup