Python Selenium - 单击下一页

时间:2017-05-10 08:10:57

标签: python selenium-chromedriver

我目前正在编写一个python selenium脚本来从网站上获取信息。我已经成功地以我想要的格式获得了100页以上的数据。遗憾的是,我无法让程序运行并从正在进行的页面中收集所有信息。当我查看网站target = https://www.freshfields.com/en-gb/contacts/find-a-lawyer/脚本时,它向我显示“下一步”按钮编译如下;

/体/格[@id ='主内容'] /格[@class =' T6A栅'] /格[@class =' mmargin汉字-30'] /格[@id ='网格'] /格[@class ='行边距-10'] /格[@类= ' col-md-12 padding-left-0 padding-right-20'] / ul [@class =' pagination'] / li [11] / a 我写的部分脚本如下。 "#这将导航到下一页元素"在脚本中是当前没有工作的区域。

def get_links(driver,target):     #这是收集与Freshfields网站上的所有个人资料相关联的链接

driver.get(target)
# get links associated to profiles on result page
list_links = [] 
while True:
    list_ppl_link =  driver.find_elements_by_xpath('//div[@class=" mix item col-xs-6 col-sm-4"]')      
    for item in list_ppl_link:
        emp_name_obj = item.find_element_by_tag_name('a')
        emp_name = emp_name_obj.text
        emp_link = emp_name_obj.get_attribute('href')
        list_links.append({'emp_name':emp_name, 'emp_link':emp_link})
    try:
        # this is navigate to next page
        driver.find_element_by_xpath('//ul[@class="pagination"]/li').click()
        time.sleep(1)
    except NoSuchElementException:
        break
return list_links

请有人帮我理解如何循环浏览页面并收集1,960条记录?

非常感谢

克里斯

1 个答案:

答案 0 :(得分:0)

尝试使用以下内容:

list_ppl_link =  driver.find_elements_by_xpath('//div[@class=" mix item col-xs-6 col-sm-4"]') 
    i=1     
    for item in list_ppl_link:
        i=i+1
        emp_name_obj = item.find_element_by_tag_name('a')
        emp_name = emp_name_obj.text
        emp_link = emp_name_obj.get_attribute('href')
        list_links.append({'emp_name':emp_name, 'emp_link':emp_link})
    try:
        # this is navigate to next page
        driver.find_element_by_xpath('//ul[@class="pagination"]//li/a[contains(text(),"' + str(i) +'")').click()
        time.sleep(1)
    except NoSuchElementException:
        break