2
私はverizonのウェブサイトからレビューをスクラップしようとしています。私はウェブページ上でinspect
を実行してレビューのxpathを見つけました。私はコードの下で実行していますが、このreview.text
は完全に常に動作しているようです。私は、正しいテキストは時々、時にはそれだけでError in
メッセージ出力し得る -python can notでのセレニウムウェブの掻き取り。要素の文章
わからない、私が間違って何をやっているの。..
from selenium import webdriver
url = 'https://www.verizonwireless.com/smartphones/samsung-galaxy-s7/'
browser = webdriver.Chrome(executable_path='/Users/userName/PycharmProjects/Verizon/chromedriver')
browser.get(url)
reviews = []
xp = '//*[@id="BVRRContainer"]/div/div/div/div/div[3]/div/ul/li[2]/a/span[2]'
# read first ten pages of reviews ==>
for j in range(10):
reviews.extend(browser.find_elements_by_xpath('//*[@id="BVRRContainer"]/div/div/div/div/ol/li[*]/div/div[1]'
'/div/div[2]/div/div/div[1]/p'))
try:
next = browser.find_element_by_xpath(xp)
next.click()
except:
print(j,"error clicking")
# Print reviews ===>
for i, review in enumerate(reviews):
try:
print(review.text)
except:
print("Error in :" review)
はありがとうございました!私は 'WebDriverWait(browser、timeout = 10).untilを使用しようとしましたが、私は(そのロジックの配置はすべて間違っていました.. – Pushkr
通常、 'ExplicitWait'を使うのは良い考えです。あなたはそれらを 'time.sleep()'に置き換えて実装して、時間を節約しようとすることができます – Andersson
確かに、私はセレンに非常に新しいです。私は間違いなくExplicitWaitを調べます。 – Pushkr