首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用python selenium抓取下一页(分页

无法使用python selenium抓取下一页(分页
EN

Stack Overflow用户
提问于 2019-03-08 03:18:32
回答 1查看 406关注 0票数 0

我试着从konga.com上抓取数据。但是我能够刮掉第一页,但是第二页出现了问题。我还复制了站点第2页的URL,但它确实起作用了。代码如下:

代码语言:javascript
复制
from selenium import webdriver
import time

browser = webdriver.Chrome(executable_path='C:\Python27\Scripts\chromedriver.exe')

for i in range(1,50):
   y= '%0d'%i
   url="https://www.konga.com/category/electronics-5261?"+ "page="+'%0d'%i
   print url
   browser.get("url")


p=browser.find_elements_by_xpath ("//div[@class='af885_1iPzH']/h3")

for a in p:
        print '.........page'+ str(i)+ '..........' 
        print a.text
EN

回答 1

Stack Overflow用户

发布于 2019-03-08 03:40:05

你们已经很接近了。问题是,在实际加载到页面之前,您正在尝试查找类名。分页链接也是如此。看起来在页面加载之前,这些元素在几秒钟内都没有完全加载。您需要做的是让您的webdriver等待几秒钟,直到该元素使用WebDriverWait方法可见:

代码语言:javascript
复制
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import time

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--hide-scrollbars')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument("--log-level=3")  # fatal


page = 0

browser = webdriver.Chrome(executable_path=r'C:\Users\edekio\Downloads\chromedriver.exe', chrome_options=chrome_options)

url = "https://www.konga.com/category/electronics-5261"
browser.get(url)

while page < 51:

    page = page + 1


    next_page = WebDriverWait(browser, 15).until(EC.presence_of_element_located((By.LINK_TEXT, str(page))))
    next_page.click()


    print("page " + str(page))

    element = WebDriverWait(browser, 15).until(
        EC.presence_of_element_located((By.CLASS_NAME, "af885_1iPzH")))
    print(element.text)

前3页的输出:

代码语言:javascript
复制
page 1
Q18 Smartwatch - Silver
page 2
Zealot S12 Bluetooth Wireless Speaker...
page 3
I8 Tws Wireless Earbuds - White

这是用python3.6编写的。看起来您使用的是python2.x,但如果在线转换器不适用于您的版本,则可以使用在线转换器。我建议升级到python 3.6 for Selenium,因为我不知道它们的所有功能是否都能在Python2.x上运行

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55051305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档