2015-04-20 2 views
0

Я пытаюсь извлечь текст из промежуточного тега TD с помощью BeautifulSoup и запросов в Python 2.7. До сих пор с помощью этого кода я ничего не получаю :(Как извлечь текст из промежуточного тега TD с помощью BeautifulSoup и запросы в Python 2.7

import requests 
from bs4 import BeautifulSoup 

# Set up the Spider 

def card_search(max_pages): 
    page = 1 
    mtgset = 'portal' 
    card = 'lava-axe' 

    while page <= max_pages: 
     url = 'http://www.mtgotraders.com/store/search-results.html?q=lava+axe&x=0&y=0' 
     source_code = requests.get(url) 
     plain_text = source_code.text 
     soup = BeautifulSoup(plain_text) 

     for text in soup.findAll('td',{'class': 'price mod'}): 
      pagetext = text.get('td') 

      print(pagetext) 
      page += 1 

card_search(1) 

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

Вот код используется тянуть ссылки, но его не направлен на столе. только самой страницы.

import requests 
from bs4 import BeautifulSoup 

# Set up the Spider 

def card_search(max_pages): 
    page = 1 
    mtgset = 'portal' 
    card = 'lava-axe' 

    while page <= max_pages: 
     url = 'http://www.mtgotraders.com/store/search-results.html?q=lava+axe&x=0&y=0' 
     source_code = requests.get(url) 
     plain_text = source_code.text 
     soup = BeautifulSoup(plain_text) 

     for text in soup.findAll('a'): 
      pagetext = text.get('href') 

      print(pagetext) 
      page += 1 

card_search(1) 

С уважением, Sour Jack

+0

похоже, что вам нужно передать заголовки. –

+0

Когда я получаю этот URL-адрес, я вообще ничего не вижу в таблице. Я не знаю, является ли URL-адрес неправильным (я замечаю, что вы не используете переменные 'mtgset' и' page' в любом месте URL-адреса ...), вы должны делать POST с некоторой информацией в теле вместо GET, вы используете защиту с глубокой связью или аналогичную, или таблица создается JavaScript, а не статически частью страницы. Но независимо, если таблицы нет, вы не можете разобрать таблицу. – abarnert

+0

И это не имеет ничего общего с вашим кодом Python; если я просто передаю один и тот же URL-адрес для завивки или wget, я получаю одну и ту же страницу без таблицы. Итак, если вы действительно получили это, чтобы работать для вытягивания ссылок из таблицы, вам нужно будет опубликовать код, который на самом деле делает это, а не код, который этого не делает. – abarnert

ответ

0

Если вы хотите иметь большую гибкость при очистке, вам понадобится нечто вроде phantomJs. Посмотрите на плейера Пиклера here.

+1

Спасибо всем, кто ответил. PhantomJs с Selenium выглядит как билет. –

Смежные вопросы