动态页面的网页抓取循环

时间:2020-03-08 13:06:11

标签: python selenium loops web-scraping

我正试图从该网站上获取评论。它开始时仅显示3条评论,每按一次“显示更多评论”,它就会显示3条评论。我能够使代码单击“显示更多评论”按钮,但是当我尝试在单击按钮后打印出评论时,我只获得了前3条评论两次。我该如何循环播放,以便它一直单击并收集新评论,直到最后?

from selenium import webdriver
import pandas as pd
driver = webdriver.Chrome(executable_path=r'C:\Users\Sara Jitkresorn\AppData\Local\Programs\Python\Python37\Scripts\chromedriver\\chromedriver.exe')

driver.get("https://boxes.mysubscriptionaddiction.com/box/boxycharm?ratings=true#review-update-create")
df = pd.DataFrame()

review = driver.find_elements_by_class_name("comment-body")
for post in review:
    print(post.text)

driver.find_element_by_xpath('//*[@id="user-reviews"]/div[2]/div[1]/a').click()

driver.implicitly_wait(10)
review2 = driver.find_elements_by_class_name("comment-body")
for post in review2:
    print(post.text)

    temp_df = pd.DataFrame({'Reviews':review2})
    df = df.append(temp_df, sort=False).reset_index(drop=True)

df.to_csv('subsaddictTest01.csv', index=False, encoding='utf-8')
print ('excel done')

这是我从代码中得到的结果

我认为Boxycharm总体来说是最好的美容订阅。但是,我认为这很荒谬,如果要升级,您必须为第一个包装盒支付25,然后再添加额外的钱来获得保费。即使只有一次,那也是疯狂的。所以大约80美元就可以换成Premi ...阅读更多

我喜欢拿每月的盒子,只是希望它们能按照我对颜色的偏爱!

我以前对包装盒感到非常兴奋。但现在不多了。这个月缺少Fenty盒子的选择!

我不是小丑

我认为Boxycharm总体来说是最好的美容订阅。但是,我认为这很荒谬,如果要升级,您必须为第一个包装盒支付25,然后再添加额外的钱来获得保费。即使只有一次,那也是疯狂的。所以大约80美元就可以换成Premi ...阅读更多

我喜欢拿每月的盒子,只是希望它们能按照我对颜色的偏爱!

我以前对包装盒非常兴奋。但现在不多了。这个月缺少Fenty盒子的选择!

我不是小丑

Excel工作表中收集的数据也很奇怪。这是此代码生成的excel中其中一行的示例。

<selenium.webdriver.remote.webelement.WebElement (session="2ff48075e18712a7ffb62a1dc1a88ad1", element="487f7764-e4e4-40f6-81ec-bbf3a5bacce3")>

1 个答案:

答案 0 :(得分:0)

对于excel,请遍历该列表项,然后使用 .text 并首先获取品牌和帐户信息,以查看是否可以访问此link