我的问题是,我刮产品从一个网站,加载产品自动当你向下滚动,我做了24 itmes的scaping,所以我的问题是什么代码可以用它来循环所有的产品,我想在下面的链接,但链接没有一个字,可以表明我在什么页面
from bs4 import BeautifulSoup
import requests
import pandas as pd
from time import sleep
import urllib.parse
import urllib
import webbrowser
import json
import urllib.request
product_name = []
product_brand = []
product_price =[]
product_img = []
relative_url = []
website = 'https://en-saudi.ounass.com/women/beauty/fragrance'
response = requests.get(website)
soup = BeautifulSoup(response.content, 'html.parser')
results = soup.find_all('div', {'class':'Product-contents'})
for result in results :
#name
try:
product_name.append(result.find('div',{'class':'Product-name'}).get_text())
except:
product_name.append('n/a')
#brand
try:
product_brand.append ( result.find('div',{'class':'Product-brand'}).get_text())
except:
product_brand.append('n/a')
#price
try:
product_price.append ( result.find('span',{'class':'Product-minPrice'}).get_text())
except:
product_price.append('n/a')
#pics
try:
product_img.append (result.find('img',{'class':'Product-image'}).get('data-src'))
except:
product_img.append('n/a')
#relative_url
try:
relative_url.append (result.find('a',{'class':'Product-link'}).get('href'))
except:
relative_url.append('n/a')
2条答案
按热度按时间wyyhbhjk1#
你只需要使用公共API。这里有很多你需要的信息。它也比selenium工作得快得多。下面是一个例子,你的问题中的字段:
输出:
mnowg1ta2#
你需要selenium来完成这个任务。selenium打开一个网页(使用驱动程序)并执行你指定的操作,比如滚动。
代码本身将取决于网站的结构,但这里是让你开始的主要步骤:
1.下载Chrome或Firefox驱动程序
1.导入 selenium
1.配置selenium以使用驱动程序
1.打开网站
1.用scroll和用户向下箭头键向下滚动查找元素。
1.从加载的产品中获取所需信息使用python sleep确保所有内容都已加载,并根据需要再次滚动