2016-05-03 2 views
1
from selenium import webdriver 
from selenium.webdriver.support.ui import Select 
from bs4 import BeautifulSoup 
import csv 
import requests 
import re 

driver2 = webdriver.Chrome() 
driver2.get("http://www.squawka.com/match-results?ctl=10_s2015") 

soup=BeautifulSoup(driver2.page_source) 

print soup 

driver2.quit() 

Я пытаюсь получить HREF каждого «ТД», «Класс»: «Матч-центр», и мне нужно использовать селен, чтобы перемещаться по страницам, но им с трудом включите эти два, чтобы я мог изменять параметры меню и перемещаться по различным страницам, вставляя ссылки в другой код.Синтаксический HTML Содержания с помощью BeautifulSoup & Селен

Я исследовал и пытался ('inner-html') и source.source в настоящее время в коде, но он не получает ни одной из ссылок, которые мне нужны.

У кого-нибудь есть решение, чтобы получить эти ссылки и перейти на страницу. Может ли быть способ получить XML этой страницы, чтобы получить все ссылки?

ответ

1

Не знаете, зачем вам нужен BeautifulSoup (BS) здесь. Селен сам по себе способен находить элементы и перемещаться по ссылкам на странице. Например, чтобы получить все ссылки на страницы анкетных можно сделать следующим образом:

>>> matches = driver.find_elements_by_xpath("//td[@class='match-centre']/a") 
>>> print [match.get_attribute("href") for match in matches] 

Что касается навигации по страницам, вы можете использовать следующие XPath:

//span[contains(@class,'page-numbers')]/following-sibling::a[1] 

Приведенных выше XPath находит ссылку на следующую страницу. Чтобы перемещаться по всем страницам, вы можете попробовать использовать цикл while; в то время как ссылка на следующую страницу найдена:

  1. выполнить действие щелчка по ссылке,
  2. захватить все href с текущей страницы,
  3. найти следующую ссылку страницы.