我的项目是关于抓取5个购物网站。我从StackOverflow和youtube找到了有用的数据。但是我被困在一个网站上。 一个div类使用样式显示,所有div类都被隐藏之后,没有显示,也没有可见的隐藏。我尝试使用ajax(用于javascript的google chrome扩展名),并应用了我在其他4种应用的不同方法,但该网站对我来说有点难。如果有人帮助我阅读这些标签,以便我可以从网站上抓取数据,那将是有益的。 网站网址为:Website
当前,我正在使用简单的代码进行解析。这是我使用的代码。
y = requests.get(url)
soup = BeautifulSoup(y.text, "html.parser")
products = soup.find('div', class_='container min-w1170')
products = products.find('div', class_='row mgt25')
print(products)
products = products.find_all("div", class_="findify-components-common--grid__column findify-components-common--grid__column-6")
print(products)
直到第一次打印,所有div类都在工作,但是之后,我无法从下一个div类中找到数据。
答案 0 :(得分:0)
此脚本将为您提供所需的一切。使用beautifulsoup的技巧是仔细分析html并在元素中查找模式。您的代码中的错误可能是使用了错误的属性值。
from bs4 import BeautifulSoup
import requests
from selenium import webdriver
from socket import socket
url = 'https://homeshopping.pk/search.php?q=dell'
browser = webdriver.Firefox()
browser.get(url)
html = browser.page_source
soup = BeautifulSoup(html,features='html.parser')
products = soup.find_all('div',{'class':'findify-components--cards--product innerp product-box'}) # the div for each product tile
for product in products:
name = (product.find('span',{'class':'findify-components--text findify-components--cards--product__title'})).get_text()
price = (product.find('span',{'class':'price findify-components--cards--product--price__price'})).get_text()
img_src = product.find('img')
all_urls = product.find_all('a')
product_url = all_urls[1] # it will always be the second one
product_url_only = product_url['href']