2015-04-19 2 views
2

Так что я пытаюсь научиться соскабливанию и задавался вопросом, как получить несколько веб-страниц информации. Я использовал его на http://www.cfbstats.com/2014/player/index.html. Я хочу получить все команды, а затем перейдите по ссылке каждой команды, в которой отображается список, а затем загрузите информацию каждого игрока и в пределах их личной ссылки их статистику.Python Beautiful Soup извлекает несколько веб-страниц информации

то, что я до сих пор:

import requests 
from bs4 import BeautifulSoup 

r = requests.get("http://www.cfbstats.com/2014/player/index.html") 
r.content 
soup = BeautifulSoup(r.content) 
links = soup.find_all("a") 
for link in links: 
    college = link.text 
    collegeurl = link.get("http") 
    c = requests.get(collegeurl) 
    c.content 
    campbells = BeautifulSoup(c.content) 

Тогда я потерял оттуда. Я знаю, что мне нужно сделать вложенный цикл, но я не хочу определенных ссылок, таких как условия и социальные сети. Просто пытайтесь получить информацию о игроке, а затем их статистику, которая связана с их именем.

ответ

0

не знаком с BeautifulSoup, но, конечно, вы можете использовать регулярное выражение для получения требуемых данных.

1

Вы должны как-то отфильтровать ссылки и ограничить цикл for теми, которые соответствуют командам. Затем вам нужно сделать то же самое, чтобы получить ссылки на игроков. Используя «Инструменты разработчика» от Chrome (или эквивалент вашего браузера), я предлагаю вам (щелкните правой кнопкой мыши) обследовать одну из интересующих вас ссылок, затем попытайтесь найти что-то, что отличает ее от других ссылок, которые не являются представляет интерес. Например, вы узнаете о странице CFBstats:

  1. Все ссылки команды находятся внутри <div class="conference">. Кроме того, все они содержат подстроку "/team/" в href. Таким образом, вы можете либо xpath ссылаться на ссылку, содержащуюся в таком div, либо фильтровать те, у которых есть такая подстрока, или и то, и другое.

  2. На командных страницах ссылки игрока находятся в <td class="player-name">.

Этих двух должно быть достаточно. Если нет, вы получите суть. Веб-сканирование - экспериментальная наука ...