抓取数据 - 下一个评论页面

时间:2021-05-11 04:05:49

标签: python selenium screen-scraping

我正在处理一个课程项目,并希望加载一些产品的评论。我使用了以下代码(感谢其他堆栈溢出问题)。

加载时的网页抓取数据没有给我完整的数据。

产品链接-

https://www.lazada.sg/products/the-rewilding-houseplant-aroid-potting-mix-soil-5l-i1304070589-s5439710559.html?spm=a2o42.home.just4u.2.654346b5QPl9bG&scm=1007.17519.162103.0&pvid=7a914f78-55e5-4469-a436-773e5ca485fb&search=0&clickTrackInfo=tcExpIds%3A244%3Btcsceneid%3AHPJFY%3Bbuyernid%3Aece30535-bc49-45a2-aced-70c0b6810838%3Btcbid%3A1%3Btcboost%3A0%3Bpvid%3A7a914f78-55e5-4469-a436-773e5ca485fb%3Bchannel_id%3A0000%3Bmt%3Ahot%3Bitem_id%3A1304070589%3Bself_ab_id%3A162103%3Bself_app_id%3A7519%3Blayer_buckets%3A955.7330_955.7331%3B

driver.get(url)
content = driver.page_source
soup = BeautifulSoup(content)

data = json.loads(soup.find('script',type = 'application/ld+json').text)
data

下载的汤信息没有给我关于下一个评论按钮的信息,因此我无法点击该按钮。

我尝试了以下方法 - 它工作了一次,但有时会给我一个错误。

if len(driver.find_elements_by_css_selector("button.next-pagination-item.next[disabled]"))>0:
    print('done')
else:
    button_next=WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "button.next-pagination-item.next")))
    driver.execute_script("arguments[0].click();", button_next)
    print("next page")
    time.sleep(2)

以上代码显示如下错误-

Error Image

希望得到任何帮助,或者如果需要任何其他信息,请告诉我。谢谢。

编辑 1 -

根据评论(我有错误的 CSS 选择器),我修改了我的答案。我正在寻找下面给出的班级名称 - 最后一个应该是选择的,因为它说“下一个”

class names

我尝试了下面的一个,但它说找不到,但正如你在上面的图片中看到的那样,它确实存在。此外,汤内容不包含此内容。

driver.find_elements_by_class_name('next-icon next-icon-arrow-right next-icon-medium next-icon-last')

它以不存在的错误作为响应。

0 个答案:

没有答案