Python 使用BeautifulSoup进行网页抓取
我是新用户,我正在尝试将此网页的每个产品的链接添加到所有子页面(1-8): 我在每一页上都有一个循环,但由于某些原因,在第7页上它只显示了20种产品,而在第8页上没有显示任何产品 这是一个函数,用于获取每个页面上每个产品的所有URL:Python 使用BeautifulSoup进行网页抓取,python,web-scraping,beautifulsoup,python-beautifultable,Python,Web Scraping,Beautifulsoup,Python Beautifultable,我是新用户,我正在尝试将此网页的每个产品的链接添加到所有子页面(1-8): 我在每一页上都有一个循环,但由于某些原因,在第7页上它只显示了20种产品,而在第8页上没有显示任何产品 这是一个函数,用于获取每个页面上每个产品的所有URL: def get_all_product_url(base_url): # Set up link and gets all URLs page = requests.get(base_url, stream=True) soup = Bea
def get_all_product_url(base_url):
# Set up link and gets all URLs
page = requests.get(base_url, stream=True)
soup = BeautifulSoup(page.content, 'html.parser',from_encoding='utf-8')
url_list = []
try:
products = soup.find_all('div', {'class':'jsx-3418419141 product-thumbnail'})
except:
return url_list
for i in products:
url = i.find("a").get('href')
if 'https://www.sodimac.cl' in url:
url_list.append(url)
else:
url_list.append('https://www.sodimac.cl'+url)
# Return all web address without duplicates
return list(set(url_list))
当我在第8页运行它时,我会得到一个雇员列表
base_url = "https://www.sodimac.cl/sodimac-cl/category/scat359268/Esmaltes-al-agua?currentpage=8"
page = requests.get(base_url, stream=True)
soup = BeautifulSoup(page.content, 'html.parser',from_encoding='utf-8')
url_list = get_all_product_url(base_url)
url_list
如果在第1页运行它,您将得到28个条目
base_url = "https://www.sodimac.cl/sodimac-cl/category/scat359268/Esmaltes-al-agua?currentpage=1"
page = requests.get(base_url, stream=True)
soup = BeautifulSoup(page.content, 'html.parser',from_encoding='utf-8')
url_list = get_all_product_url(base_url)
url_list
任何帮助我都会很感激的
谢谢这是因为第1页返回“Tu búsqueda de”“no arrojóresultados.”顺便说一句,这是“刮伤”,不是“刮伤”。谢谢,迈克,但我没有跟上你。这些是我在第1页中得到的一些元素-[“”,“”,“”,“”,“”,“”,第8页是空的,因为只有7页。很抱歉,当我应该写第8页时,我只写了第1页。当我在浏览器中粘贴一个页面时,我仍然会看到一个页面,上面写着“Tu búsqueda de no arrojóresultados”,而“=1”最后我得到了一个合适的列表。所以Ares Zephyr做对了。该站点将HTTP请求重定向到“no resultados”页面。